Запуск шаблона T4 с использованием C # - PullRequest
16 голосов
/ 24 января 2011

У меня есть шаблон T4 (mycode.tt), который генерирует файл CS. Я обычно щелкаю правой кнопкой мыши файл tt и выбираю RunCustomTool, который внутренне берет файл xml и генерирует код для меня. Теперь я хочу запустить пользовательский инструмент с помощью приложения Windows C #. Итак, нажав кнопку, я хочу запустить Custom Tool. Можно ли запустить CustomTool из c #.

Edit:

У меня есть 2 tt-файла, и у одного из них нет кода cs. Но к другому прикреплен файл .cs, и я вызываю метод TransformText () второго файла из первого файла .tt. Поэтому мне нужно вызвать первый файл. Так что я не могу использовать метод TransformText (). Есть ли способ динамического вызова файла textTemplate?

Ответы [ 2 ]

18 голосов
/ 24 января 2011

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

Это краткий пример предварительно обработанного текстового шаблона с именем "TestTemplate.tt" икак вы используете это в своем коде:

файл tt:

<#@ template language="C#" #>
Some output.

код:

using System;
using System.Diagnostics;

namespace Test
{
    class Program
    {
        static void Main(string[] args)
        {
            TestTemplate testTemplate = new TestTemplate();
            Debug.Print(testTemplate.TransformText());
        }
    }
}
7 голосов
/ 25 января 2011

Я бы порекомендовал предварительно обработанный маршрут, как ответил выше @jb_.

В качестве альтернативы, если вам нужно, чтобы ваши шаблоны по-прежнему можно было редактировать без шага компиляции для использования с вашим настраиваемым приложением C #, и приложение будет развернуто только на компьютерах вместе с Visual Studio, вы можете написать собственный хост. *

http://msdn.microsoft.com/en-us/library/bb126519.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...