2016-08-10 4 views
2

Я разрабатывал небольшое расширение Visual Studio (исключительно для собственного использования) и состоит из самого проекта VSIX, который затем ссылается на другую dll (в том же решении), которая затем ссылается на другой проект (также в том же решении). Все это прекрасно работает, когда я отлаживаю расширение и запускаю его в экспериментальном экземпляре Visual Studio. Однако, если я попытаюсь установить VSIX в Visual Studio для реального (дважды щелкнув файл .vsix), это не сработает. Есть одна команда, которая не ссылается ни на что из других сборок, которые отлично работают, а затем есть еще одна команда, которая делает это просто терпит неудачу.VSIX не устанавливает зависимости в VS 2015

Глядя на установку под C:\Users\matt.burland\AppData\Local\Microsoft\VisualStudio\14.0Exp\Extensions и C:\Users\matt.burland\AppData\Local\Microsoft\VisualStudio\14.0\Extensions Я вижу разницу в том, что другие зависимости не установлены VSIX.

Я видел этот вопрос VS2010: VSIX package doesn't include localized resources of referenced assembly

Но решение не кажется, что будет актуальным. Я не вижу свойство Output Groups Included in VSIX для установки.

Я пробовал посмотреть на source.extension.vsixmanifest и у него есть вкладка для зависимостей. Я выбрал New, Выбранный A project in current solution в качестве источника выбран один из моих проектов, отобранных Embed in this VSIX, но когда я нажимаю Ok я получаю сообщение об ошибке:

VSIX Manifest Editor

Нет расширители не может быть найдено для имени 'VsixProjectReferenceContentItemObjectExtender' под CATID {2F0FA3B8-C855-4a4e-95A5-CB45C67D6C27}. Убедитесь, что поставщик расширителя для этого Extender правильно зарегистрирован.

ответ

0

Я понял, что должен смотреть на активы, а не на зависимости, но я не смог добавить в качестве актива, используя редактор манифеста, либо с аналогичной ошибкой. Поэтому я создал совершенно новый, пустой проект VSIX в новом решении, добавил пустую библиотеку классов, ссылался на нее в проекте VSIX, а затем посмотрел на редактор манифеста. По какой-то причине я смог добавить сборку без каких-либо проблем.

Затем, глядя на файл .vsixmanifest в редакторе XML, я мог бы выяснить правильный синтаксис ссылки на сборку и скопировать ее в мой настоящий проект. Для записи (так как документация по .vsixmanifest не совсем информативен здесь), это выглядит следующим образом:

<Asset Type="Microsoft.VisualStudio.Assembly" d:Source="Project" d:ProjectName="MyProject" 
     Path="|MyProject|" AssemblyName="|MyProject;AssemblyName|" /> 

Где MyProject это имя библиотеки зависимого класса в вашем решении, которое должно быть включено в VSIX.

Смежные вопросы