При попытке добавить ссылки на VSIX он обычно извлекает его из ссылок в .csproj. Однако, если ссылки не находятся в .csproj, потому что они теперь находятся в файле project.json, то их не тянет к vsix. Затем решение может скомпилироваться, но затем при сбое с файлом не обнаружены ошибки при установке в Visual Studio (так как сборки, которые не копируются в VSIX).
Я попытался с секцией манифеста следующим образом:
<Asset Type="Microsoft.VisualStudio.Assembly" d:Source="Project" d:ProjectName="*PROJECTNAME*" Path="|*ASSEMBLYNAME*|" AssemblyName="|*ASSEMBLYNAME*;AssemblyName|" />
Но он не работает, поскольку он не распознает ссылки на пакеты.
После некоторых исследований я увидел подобную проблему с PCL, однако, без ответа, но не с тем же типом проблемы: MEF С помощью библиотеки Portable Class с использованием Microsoft Composition MEF2 выдает файл не найденное исключение
В той же заметке это похоже на приемлемое обходное решение: VSIX с шаблонами проектов и пакетами NuGet, однако, насколько я понял, подразумевается использование пакета во время установки. Кроме того, это не работает для нашего случая, так как им нужно указать версию пакета, и мы используем project.json, чтобы мы могли использовать плавающие версии (то есть: 2.0. *)
Есть ли способ ссылаться на эти ссылки project.json, которые нам не хватает? Может быть, обходной путь? Решения, которые я нашел, кажутся для всех, требуют "вставить" DLL где-нибудь, что для плавающих версий не так удобно.
Заранее благодарим за помощь или ввод.
Изменить/Обновить. Поскольку VSIX автоматически подталкивает любую сборку, на которую ссылаются в CSPROJ (а не на самом проекте), попытка получить DLL на уровне проекта кажется маловероятной. После многих попыток, я думаю, что допустимым решением было бы получить сборки из выходной папки. Однако, насколько мне известно, VSIX не имеет способа сделать это или делает это?