Как использовать сборки мастера, прикрепленные в VsixMainfest, в шаблонах проектов?

У меня есть файл vsixmanifest, который имеет атрибут сборки. Файл выглядит так:

<Content>
<ProjectTemplate>Solution</ProjectTemplate>
<Assembly AssemblyName="SolutionNameWizard, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1c39bfcc-223f-4c12-a5dc-55eeca7c61f7">
    Assemblies\SolutionNameWizard.dll
</Assembly>

Я знаю, что имя сборки и открытый ключ верны.

Сейчас я пытаюсь использовать эту сборку в одном из моих шаблонов. Прямо сейчас у меня есть:

<WizardExtension>
      <Assembly>SolutionNameWizard, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1c39bfcc-223f-4c12-a5dc-55eeca7c61f7</Assembly>
      <FullClassName>SolutionNameWizard.IWizardImplementation</FullClassName>
</WizardExtension>

Есть что-то, чего мне не хватает? Когда я запускаю vsix, я получаю следующую ошибку:

A problem was encountered creating the sub project 'test.Web' Error: this template
attemtped to load component assembly 'SolutionNameWizard, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1c39bfcc-223f-4c12-a5dc-55eeca7c61f7'.

Я знаю, что шаблоны требуют сборки в GAC, это также тот случай, когда я использую vsix? Я надеялся избежать GAC и все еще использовать своего мастера.

РЕДАКТИРОВАТЬ: я изменил открытый ключ на правильную строку, как предложено в ответах, но все еще остается проблема.

Изменить 2: помимо полезного ответа ниже, есть блог, который я написал после того, как закончил этот процесс. Он ссылается на кучу статей, которые я считаю очень полезными: https://thebhwgroup.com/blog/2013/10/visual-studio-templates

2 ответа

Решение

Если кто-то случайно натолкнется на этот вопрос, я в итоге буду следовать этому руководству: http://blog.tonysneed.com/2011/09/14/build-a-multi-project-visual-studio-template/

Это сделало процесс (в основном) очень простым. Если кто-то сталкивается с подобными проблемами, не стесняйтесь связаться со мной, и я могу попытаться поделиться тем, что я узнал.

Изменить: вот небольшая статья в блоге, которую я написал после завершения этого процесса. Это может быть полезно для тех, кто сталкивается с этим: http://www.thebhwgroup.com/blog/2013/10/visual-studio-templates/

Если ваша сборка предоставляется через VSIX, она не должна быть в GAC.

Ваш PublicKeyToken определенно не верен. Вы используете Guid, когда это должна быть 16-символьная шестнадцатеричная строка (8 байт). Смотрите следующий пример:

MyAssembly, версия =11.0.0.0, культура = нейтральная, PublicKeyToken =b03f5f7f11d50a3a

Вы можете найти значение PublicKeyToken для вашей сборки, запустив sn.exe -T MyAssembly.dll из командной строки VS

Другие вопросы по тегам