签入t4类进入源代码管理?

时间:2014-04-10 13:05:30

标签: c# t4

我想使用t4在运行时生成一些文本。我创建了一个“运行时文本模板”。我注意到有.cs文件是从.tt文件生成的.cs文件。我试图找出是否通常检查源控件。通常我不会检入生成的文件。此文件具有#line指令,其中包含本地计算机上文件的完整路径。检查一下看起来很有趣,因为在我的队友的机器上显然不一样。

2 个答案:

答案 0 :(得分:4)

您对.cs文件中的文件名的关注是非常有效的,但在这种情况下它是#line compiler directive的一部分,它只是告诉编译器要在其中打印什么文件名& #39;处理此文件时的输出。

编辑:OP的好发现 - 对于VS 2012,您可以在模板中添加以下指令以删除LinePragmas。进一步的SO讨论here

<#@ template language="C#" linePragmas="false" #>

作为一般规则,我只想检查文件是否......

  1. 其他开发人员或构建代理需要构建代码
  2. 部署
  3. 作为文档或类似用途

答案 1 :(得分:3)

是的,您需要将其签入源代码,因为如果您不这样做,很可能会导致其他开发人员的构建中断。虽然他们可以自己运行T4模板但是他们不应该这样做。另一个相关的原因是,如果你有某种构建工具,比如巡航控制,它可能不会运行你的T4模板而又不能再建造项目了。