我想使用t4在运行时生成一些文本。我创建了一个“运行时文本模板”。我注意到有.cs文件是从.tt文件生成的.cs文件。我试图找出是否通常检查源控件。通常我不会检入生成的文件。此文件具有#line
指令,其中包含本地计算机上文件的完整路径。检查一下看起来很有趣,因为在我的队友的机器上显然不一样。
答案 0 :(得分:4)
您对.cs文件中的文件名的关注是非常有效的,但在这种情况下它是#line
compiler directive的一部分,它只是告诉编译器要在其中打印什么文件名& #39;处理此文件时的输出。
编辑:OP的好发现 - 对于VS 2012,您可以在模板中添加以下指令以删除LinePragmas。进一步的SO讨论here。
<#@ template language="C#" linePragmas="false" #>
作为一般规则,我只想检查文件是否......
答案 1 :(得分:3)
是的,您需要将其签入源代码,因为如果您不这样做,很可能会导致其他开发人员的构建中断。虽然他们可以自己运行T4模板但是他们不应该这样做。另一个相关的原因是,如果你有某种构建工具,比如巡航控制,它可能不会运行你的T4模板而又不能再建造项目了。