Использовать локальную сборку IWizard в качестве WizardExtension в шаблоне проекта - PullRequest
4 голосов
/ 28 ноября 2011

У меня очень простая реализация IWizard с единственной целью добавить переменную параметра в словарь (взаимодействие с пользователем не требуется).

Я не хочу добавлять это кGAC, если это возможно.

Я поместил dll в корень zip-файла шаблона с файлом vstemplate и сослался на имя в разделе WizardExtension:

<WizardExtension>
    <Assembly>Wizard.dll</Assembly>
    <FullClassName>Wizard.Wizard</FullClassName>
</WizardExtension>

Я надеялсячто это будет найти и использовать локальную копию сборки, но это не похоже на работу.

Есть ли способ использовать реализацию IWizard без установки в GAC?

Ответы [ 2 ]

2 голосов
/ 07 января 2012

Я наконец проверил решение, описанное здесь .

Идея состоит в том, что мы должны добавить сборку, которая реализует IWizard, в GAC или в любое другое место, которое Visual Studio просматривает, используя механизм проверки сборки.VS ищет наш шаблон сборки рядом с собой (devenv.exe) в C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE.Он также выглядит в двух подкаталогах: PrivateAssemblies и PublicAssemblies.

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

Итак, , если я не ошибаюсь, невозможно принудительно использовать сборку непосредственно из вашего zip-файла шаблона .Чтобы упростить использование и обновление моего шаблона, я собираюсь создать небольшой проект установки.

Последнее примечание. Насколько я знаю, вы не должны указыватьРасширение .dll вашей сборки в теге Assembly.Вот как я пишу vstemplate для моей сборки расширения мастера:

  <WizardExtension>
    <Assembly>WpfTaskTemplateWizard, Version=1.0.0.0, Culture=Neutral, PublicKeyToken=22050f445905b871</Assembly>
    <FullClassName>WpfTaskTemplateWizard.UIWizard</FullClassName>
  </WizardExtension>
1 голос
/ 26 сентября 2012

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

...