将 t4 类签入源代码管理?

Kyl*_*yle 6 c# t4

我想使用 t4 在运行时生成一些文本。我创建了一个“运行时文本模板”。我注意到有一个从 .tt 文件生成的 .cs 文件。我试图弄清楚这是否通常被签入源代码管理。通常我不会签入生成的文件。该文件有一个#line指令,其中包含本地计算机上该文件的完整路径。检查这一点似乎很有趣,因为它在我队友的机器上显然不会相同。

Kev*_*vin 6

您对 .cs 文件中的文件名的担忧是非常有效的,但在这种情况下,它是#line 编译器指令的一部分,它只是告诉编译器在处理该文件时在其输出中打印什么文件名。

编辑:从 OP 中很好地找到- 对于 VS 2012,您可以在模板中添加以下指令来删除 LinePragmas。进一步的SO讨论在这里

<#@ template language="C#" linePragmas="false" #>
Run Code Online (Sandbox Code Playgroud)

作为一般规则,我只喜欢签入文件,如果它们......

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