为什么我的T4模板附加一个数字的文件名?
为什么我的T4模板有时会在输出文件中附加一个数字,有时候不是? 例如,在一种情况下,我可能有一个名为Foo.tt
的模板文件,我将得到一个Foo.cs
的输出文件。 在其他情况下,我会得到一个Foo1.cs
的输出文件。 在任何情况下,都没有其他 Foo.cs
文件可能导致它附加一个数字。 换句话说,这绝对不是任何明显的文件名冲突的结果。
我是一个深刻的肛门保留的开发者,所以我一定会喜欢知道如何摆脱那个无用的数字后缀。
发生这种情况时,Visual Studio自己感到困惑,并简要地决定,由于某种原因(通常是幻觉),它不能使用Foo.cs作为输出,所以它会使用Foo1.cs, 然后坚持记住这个设置 。
解决方法是在文本编辑器中打开.csproj文件并findFoo.tt条目。 这应该有一个名为LastGenOutput的子元素。 将其更改回Foo.cs,保存项目文件,然后在VS中重新打开它。
然后 – 叹 – 等待它再次发生。 你可以看到http://social.msdn.microsoft.com/Forums/en/linqtosql/thread/0c0f77a6-d712-43d2-a990-555df7960123了解更多细节,但似乎没有人能够解释什么原因VS进入这个状态或如何阻止它这样做;…
@ itowlson的回答确实帮了我的忙,但是我发现了一个稍微简单一些的解决办法,我想我会分享一下。
如果你有:
Filename.tt └── Filename1.cs
只需将Filename.tt
重命名为Filename2.tt
:
Filename2.tt └── Filename2.cs
再回到Filename.tt
:
Filename.tt └── Filename.cs
瞧。