Можно вызвать настраиваемый инструмент T4 TextTemplatingFileGenerator непосредственно в VS2008, например, с помощью надстройки

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

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

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

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

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

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


person ilias    schedule 07.12.2011    source источник


Ответы (1)


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

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

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

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

person GarethJ    schedule 07.12.2011