控制T4模板生成的文件名?

时间:2013-01-30 15:20:11

标签: t4

如何指示T4模板生成具有给定文件名的结果文件?

我会试着更清楚。假设我有一个名为Insert.tt的模板,它生成代码以将记录插入表中。它的输出扩展名为“sql”,因此它创建了一个名为:

的文件

Insert.sql

没关系,但是我希望文件名可以反映我正在尝试做的事情。假设我正在生成Insert for的表的名称存储在<#= TableName#>中。我想将它传递给模板生成器并让它使用它来保存生成的文件。

即。 < #SaveTemplateAs(“Insert”+ TableName); #>

因此,假设我为表User,Address和Phone生成Insert语句。

我希望生成的文件名为InsertUser.sql,InsertAddress.sql和InsertPhone.sql。

我很确定这可以完成,因为我已经看到一些自定义扩展来从单个模板生成多个文件,但我不理解一种简单(不过度杀伤)的方法来实现这一点。

由于

2 个答案:

答案 0 :(得分:19)

不幸的是,.tt文件本身似乎无法实现。但您可以在文本模板所在的项目的.csproj文件中控制输出文件名。从Visual Studio解决方案卸载项目并打开项目文件,例如.csproj直接在文本编辑器中。

您可以找到模板文件的参考。

节点<LastGenOutput>控制输出文件名。在这里,您可以选择所需的文件名。

答案 1 :(得分:1)

据我所知,T4中没有内置功能来生成多个输出文件。但你是对的,有很多样本可以告诉你如何处理多个输出文件。

也许这篇博文可能会帮助您解决问题:

http://t4-editor.tangible-engineering.com/blog/how-to-generate-multiple-output-files-from-a-single-t4-template.html

此编辑器是免费的,附带免费样本 - 其中一个包含将T4输出拆分为具有不同名称和/或扩展名的不同文件的代码。

相关问题