如何指示T4模板生成具有给定文件名的结果文件?
我会试着更清楚。假设我有一个名为Insert.tt的模板,它生成代码以将记录插入表中。它的输出扩展名为“sql”,因此它创建了一个名为:
的文件Insert.sql
没关系,但是我希望文件名可以反映我正在尝试做的事情。假设我正在生成Insert for的表的名称存储在<#= TableName#>中。我想将它传递给模板生成器并让它使用它来保存生成的文件。
即。 < #SaveTemplateAs(“Insert”+ TableName); #>
因此,假设我为表User,Address和Phone生成Insert语句。
我希望生成的文件名为InsertUser.sql,InsertAddress.sql和InsertPhone.sql。
我很确定这可以完成,因为我已经看到一些自定义扩展来从单个模板生成多个文件,但我不理解一种简单(不过度杀伤)的方法来实现这一点。
由于
答案 0 :(得分:19)
不幸的是,.tt
文件本身似乎无法实现。但您可以在文本模板所在的项目的.csproj
文件中控制输出文件名。从Visual Studio解决方案卸载项目并打开项目文件,例如.csproj
直接在文本编辑器中。
您可以找到模板文件的参考。
节点<LastGenOutput>
控制输出文件名。在这里,您可以选择所需的文件名。
答案 1 :(得分:1)
据我所知,T4中没有内置功能来生成多个输出文件。但你是对的,有很多样本可以告诉你如何处理多个输出文件。
也许这篇博文可能会帮助您解决问题:
此编辑器是免费的,附带免费样本 - 其中一个包含将T4输出拆分为具有不同名称和/或扩展名的不同文件的代码。