12

是否可以将T4​​ 模板输出与现有文件合并?

例如,如果 T4 模板生成本地化资源 XML 文件,是否可以将它们合并到某个现有资源文件中?

4

1 回答 1

13

您可以通过 GenerationEnvironment 属性访问 T4 使用的底层字符串构建器。因此,通过在您的 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 设置为新的字符串构建器以停止输出任何内容。

于 2011-06-08T11:02:41.240 回答