T4 добавить вывод в существующий файл - PullRequest
11 голосов
/ 07 июня 2011

Можно ли сделать вывод шаблона T4 для объединения с существующим файлом?

Например, если шаблон T4 генерирует XML-файлы ресурсов локализации, возможно ли объединитьих в каком-то существующем файле ресурсов?

1 Ответ

12 голосов
/ 08 июня 2011

Вы можете получить доступ к базовому строителю строк, если T4 использует свойство GenerationEnvironment.Таким образом, добавив что-то вроде следующего к вашему T4, вы сможете получить работоспособное решение:

<#@ template debug="false" hostspecific="false" language="C#" #>
<#@ output extension=".txt" #>
<#@ Import Namespace="System.IO" #>

Line #<#= rand.Next(0, 100).ToString() #>
<# AppendFile(@"C:\Development\PodCastSync\test\test.txt"); #>

<#+
    Random rand = new Random();

    private void AppendFile(string filename)
    {
       File.AppendAllText(filename, GenerationEnvironment.ToString());
    }        
#>

Если вы хотите остановить обновление файла поддержки по умолчанию, вы можете установить GenerationEnvironment для нового строителя строкпосле сохранения содержимого, чтобы прекратить что-либо выводить.

...