如何在visual studio 2012中为C#生成T4(运行时)模板设置文件扩展名

如何在visual studio 2012中为C#生成T4(运行时)模板设置文件扩展名,c#,visual-studio-2012,resharper,t4,C#,Visual Studio 2012,Resharper,T4,我有一个T4模板,以 <#@ template language="C#" #> <#@ output extension=".Generated.cs" #> <#@ assembly name="System.Core" #> <#@ import namespace="System.Linq" #> <#@ import namespace="System.Text" #> <#@ import namespace="Sys

我有一个T4模板,以

<#@ template language="C#" #>
<#@ output extension=".Generated.cs" #>
<#@ assembly name="System.Core" #>
<#@ import namespace="System.Linq" #>
<#@ import namespace="System.Text" #>
<#@ import namespace="System.Collections.Generic" #>

因此,我可以告诉Resharper忽略所有
.Generated.cs
文件最简单的方法:将模板命名为ExportForNcGeneration.Generated.tt

稍微复杂一点:手动修改.csproj文件

  • 以文本形式打开.csproj文件
  • 搜索ExportForNcGeneration.cs
  • 您应该在包含名称的.csproj中找到两个xml节点
  • 将名称更改为ExportForNcGeneration.Generated.cs
  • 重新加载项目
  • 重新生成该文件,它现在应该具有正确的名称

  • 这种方法的问题是,如果您在VS中更改.tt文件的名称,它将还原生成的文件的名称。

    您确定您将T4用于
    文本模板
    (使用
    TextTemplatingFileGenerator
    作为自定义工具),而不是T4用于
    运行时文本模板
    (使用
    TextTemplatingFilePreprocessor
    Custom Tool)?抱歉,是的,它是T4,用于运行时。我认为在这种情况下无法自定义输出文件的名称:(您不能按照建议命名模板,因为它将尝试生成类名“ExportForNcGeneration.Generated.tt”,并使编译器崩溃:)
    <#@ output extension=".Generated.cs" #>
    
    ExportForNcGeneration.Generated.cs