2013-05-08 3 views
8

Шаблон VSPackage по умолчанию в SDK Visual Studio 2012 генерирует проект, который использует сильное имя.Должны ли быть расширены расширения Visual Studio (VSIX)?

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

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

Каковы недостатки этого?

+0

Когда я удаляю сильное имя из своего VSIX, расширение не развертывается (отображается) в Visual Studio. Я использую Visual Studio 2015. –

ответ

4

Если вы уже являетесь VSIX-развертываемым и ничего не нуждаетесь в GAC, то нет, Visual Studio не требует, чтобы вы подписали сильное имя. Я считаю, что мастерам шаблонов требуется строгое подписание имени, но только потому, что они должны быть установлены в GAC.

Я могу подумать о нескольких причинах, по которым вы, возможно, захотите: если ваш пакет предоставляет публичный API, который использует другие расширения, вы можете ссылаться на общую DLL, поскольку другие люди используют ваш публичный API. Вы можете захотеть, чтобы имя сильного имени выписывало двоичный файл публичного интерфейса, и в зависимости от того, как настроены ваши проекты, вам может потребоваться сильное имя, обозначающее все.

Кроме того, если у вас не было сильного имени, вы рискуете столкнуться с именем другого абонента. Если вы создали DLL, называемую «Package.dll», а другое расширение тоже, и ни одно из вас не подписало ваши двоичные файлы, возможно, CLR немного запутается здесь. Поэтому, если вы не подписывали сильное имя, убедитесь, что ваше имя сборки «достаточно уникально», чтобы избежать этого риска.

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

+1

> Я считаю, что мастерам шаблонов требуется сильное подписание имени, но только потому, что они должны быть установлены в GAC. Это неверно. Им нужно быть сильным, но не нужно быть в GAC. – kzu

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