Возможно вызвать пользовательский инструмент T4 TextTemplatingFileGenerator непосредственно в VS2008, например, используя надстройку - PullRequest
2 голосов
/ 07 декабря 2011

Я хочу знать, можно ли вызвать пользовательский инструмент T4 TextTemplatingFileGenerator непосредственно в VS2008, например, используя надстройку.

Дело в том, что у меня есть файлы метаданных (xml) в решении. Шаблон T4 считывает эти файлы для создания файлов класса C # в той же папке, что и файл метаданных.

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

Мне было интересно, могу ли я вызывать TextTemplatingFileGenerator напрямую из надстройки и позволит ли это мне добиться того, чего я хочу.

Также следует учитывать, что я использую T4toolbox.

С уважением, Ильяс

1 Ответ

1 голос
/ 07 декабря 2011

Да, вы наверняка можете позвонить в службу T4 для надстройки.Вам не нужно будет использовать TextTemplatingFileGenerator, который в основном представляет собой тонкую оболочку для службы.

В надстройке приведите объект DTE к IServiceProvider, а затем запросите у него STextTemplating .

Приведите результат к ITextTemplating , а затем вызовите метод ProcessTemplate для каждого шаблона, который вы хотите преобразовать.Если вы делаете несколько вызовов, заключите их в вызовы Begin / EndErrorSession для устранения дублирования вывода.

Параметры обратного вызова и иерархии являются необязательными.

...