【问题标题】:T4 append output to existing fileT4 将输出附加到现有文件
【发布时间】:2011-09-09 19:41:48
【问题描述】:

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

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

【问题讨论】:

    标签: .net code-generation t4 t4-toolbox


    【解决方案1】:

    您可以通过 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 设置为新的字符串构建器以停止输出任何内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-10
      • 2017-03-20
      • 2011-11-15
      • 2016-06-07
      • 1970-01-01
      • 2016-01-26
      • 1970-01-01
      相关资源
      最近更新 更多