T4模板忽略扩展属性

时间:2015-01-22 10:47:33

标签: t4

在我的VS 2013项目中,我添加了一个名为Foo.tt的T4模板文件,其内容如下:

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

每次保存.tt文件或右键点击选定的Run Custom Tool时,输出的文件都是Foo.cs,而不是我期望的Foo.config。< / p>

为什么没有使用.config扩展属性?

1 个答案:

答案 0 :(得分:1)

我猜你想要一个“文本模板”,但是创建了一个“运行时文本模板”。后者总是会创建代码,当然是.cs

有两种T4模板:

  • “文字模板”:.tt - &gt;文件。
  • “运行时文字模板”:.tt - &gt;代码(即.cs)可以在运行时使用 来获取从模板文本创建的字符串。

后者ignores output extension