我正在使用 T4 生成一些 DTO 类 + 映射器。
我将文件拆分为多个可重复使用的位(其中一些包含常用方法,一些其他常用过程)并将它们包含到将产生我的输出的 T4 模板中 - 这一切都很好。
我的问题是每次我对它们进行更改时,可重用的 .tt 文件都会尝试生成它们自己的输出并失败(因为它们与其他一些 .tt 文件耦合),这很糟糕。
我很确定我在某处看到了一些指定给定文件的指令不应该尝试产生任何输出,但我似乎无法追踪它。
任何帮助表示赞赏!
我正在使用 T4 生成一些 DTO 类 + 映射器。
我将文件拆分为多个可重复使用的位(其中一些包含常用方法,一些其他常用过程)并将它们包含到将产生我的输出的 T4 模板中 - 这一切都很好。
我的问题是每次我对它们进行更改时,可重用的 .tt 文件都会尝试生成它们自己的输出并失败(因为它们与其他一些 .tt 文件耦合),这很糟糕。
我很确定我在某处看到了一些指定给定文件的指令不应该尝试产生任何输出,但我似乎无法追踪它。
任何帮助表示赞赏!
您可以指定无效的扩展名来抑制模板的输出,例如:
<#@ output extension="\n" #>
在要禁止输出的 T4 文件的属性(选择文件并按 F4)中,清除“自定义工具”条目。
我没有足够的 'StackOverflow street cred' 来回复 Stanislav Kniazev 的回答,所以我必须在这里发布我自己的。感谢领导斯坦尼斯拉夫·克尼亚泽夫。
以下工作; 但如果你使用的是 T4 语法高亮器(如 Tangible T4),你会发现它会填满高亮。
<#@ 输出扩展="\n" #>
所以我发现将扩展名设置为不是这样的转义字符:
<#@ 输出扩展="" #>
然后在代码部分以编程方式设置文件扩展名,如下所示:
Host.SetFileExtension("\n");
然后恢复 T4 突出显示。
将它们重命名为 .ttinclude ,看看对你有什么影响......