t4 "VisualStudioHelper" не найден

Я пытаюсь провести некоторые эксперименты с генерацией кода из проектов VS2012, но я не могу заставить этот кусок кода t4 работать

var project = VisualStudioHelper.CurrentProject;

поскольку VisualStudioHelper не может быть найден.

Что я должен установить / включить в свой t4, чтобы сделать VisualStudioHelper доступным?

3 ответа

VisualStudioHelper - это пользовательский класс из Tangible T4 Editor.

Чтобы использовать этот класс, установите Tangible T4 Editor для Visual Studio, а затем:

  1. Откройте меню Tangible T4 в Visual Studio и выберите "Галерея шаблонов".
  2. Нажмите значок "Обновить сейчас" в левом нижнем углу.
  3. Выберите из дерева каталогов: Tangible> Visual Studio CodeModel.
  4. В меню "Файлы" щелкните правой кнопкой мыши на "Обход модели кода Visual Studio" и выберите "Добавить в решение..."
  5. Выберите "VisualStudioHelper.ttinclude".
  6. В вашем файле.tt обратитесь к VisualStudioHelper следующим образом:

<#@ include file="VisualStudioHelper.ttinclude" #>

Я знаю VisualStudioHelper от осязаемого редактора T4. Это бесплатно и поставляется с галереей шаблонов, предоставляющей полезные шаблоны T4, которые вы можете включить в свои, например, для доступа к функциональности Visual Studio или конфигурации проекта и т. Д.

Может, тебе стоит взглянуть туда?

Изменить: шаблон, который вы должны искать в галерее, называется "ощутимый помощник по автоматизации Visual Studio"

Что такое VisualStudioHelper? Кажется, это обычная вещь, а не то, что встроено в шаблонизатор T4. Если вам нужен доступ к текущему проекту, вы можете попробовать это:

var dte = (EnvDTE.DTE)((IServiceProvider)Host).GetService(typeof(EnvDTE.DTE));
var project = dte.Solution.FindProjectItem(Host.TemplateFile).ContainingProject;

Не забудьте импортировать сборку вверху шаблона T4:

<#@ assembly name="EnvDTE" #>
Другие вопросы по тегам