Visual studio 如何指定T4文件是否应产生任何输出

Visual studio 如何指定T4文件是否应产生任何输出,visual-studio,split,t4,dto,Visual Studio,Split,T4,Dto,我使用T4生成一些DTO类+映射器 我正在将这些文件分成许多可重用的部分,其中一些包含常用方法,一些包含常用过程,并将它们包含到T4模板中,以生成我的输出-这一切都很好 我的问题是,可重用的.tt文件将尝试生成自己的输出,但失败了,因为每次我对它们进行更改时,它们都会与其他一些.tt文件耦合,这很糟糕 我很确定我在某处看到了一些指令,指定给定的文件不应该尝试生成任何输出,但我似乎无法跟踪它 感谢您的帮助 在“属性”中,选择文件并按F4键,清除要禁止输出的T4文件的“自定义工具”项。将它们重命名为

我使用T4生成一些DTO类+映射器

我正在将这些文件分成许多可重用的部分,其中一些包含常用方法,一些包含常用过程,并将它们包含到T4模板中,以生成我的输出-这一切都很好

我的问题是,可重用的.tt文件将尝试生成自己的输出,但失败了,因为每次我对它们进行更改时,它们都会与其他一些.tt文件耦合,这很糟糕

我很确定我在某处看到了一些指令,指定给定的文件不应该尝试生成任何输出,但我似乎无法跟踪它


感谢您的帮助

在“属性”中,选择文件并按F4键,清除要禁止输出的T4文件的“自定义工具”项。

将它们重命名为.ttinclude,然后查看对ya的影响。…

您可以指定无效扩展名以禁止模板的输出,例如:

<#@ output extension="\n" #>

我没有足够的“StackOverflow street cred”来回复Stanislav Kniazev的回答,所以我必须在这里发布我自己的答案。感谢Stanislav Kniazev的领导

以下是有效的:;但是如果您使用的是T4语法高亮显示,比如有形T4,您会发现它会填充高亮显示

因此,我发现将扩展设置为非转义字符,如下所示:

然后在代码部分以编程方式设置文件扩展名,如下所示:

Host.SetFileExtension\n


然后恢复T4高亮显示。

这听起来正是我需要的-有没有从标记中执行此操作的方法?@JohnIdol-我不相信有任何方法可以抑制T4文件本身标记中的输出。正如Preet所说,设置由项目文件中TextTemplatingFileGenerator元素的Existence控制,因此您可以将其删除,以替代通过VS GUI清除属性。这太可爱了,太可怕了!它完全符合我们的目的。我们正在将TT文件的输出重定向到另一个位置,需要抑制常规输出。如果该文件已添加为T4文件,则仍将定义“自定义工具”。将扩展名从“tt”更改为“ttinclude”将不会清除此属性。