Nano Hash - криптовалюты, майнинг, программирование

Как использовать сборки мастера, прикрепленные в 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>

I know that the assembly name and public key are correct.

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

<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 и по-прежнему использовать своего мастера.

EDIT: я изменил открытый ключ на правильную строку, как было предложено в ответах, но проблема все еще не устранена.

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


Ответы:


1

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

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

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

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

19.07.2012
  • Спасибо за ответ и за указание на проблему. Я исправил токен публичного ключа в обоих местах, но проблема осталась. Вы случайно не видите что-нибудь еще, что может быть неправильным? 20.07.2012

  • 2

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

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

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

    20.07.2012
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..