T4 добавляет вывод в существующий файл

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

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

Ответ 1

Вы можете получить доступ к базовому построителю строк, который использует 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 в новый построитель строк после сохранения содержимого, чтобы остановить вывод любого результата.