我在几个项目中使用过SubSonic的ActiveRecord T4模板。今天,我将其中一个项目(没有生成的.cs源文件)中的相同模板添加到新项目中。
由于某些原因,当我运行T4模板代码生成器时,而不是生成:
ActiveRecord.cs
,Context.cs
,StoredProcedures.cs
和Structs.cs
模板生成器创建:
ActiveRecord1.cs
,Context1.cs
,StoredProcedures1.cs
和Structs1.cs
代替。
我删除了ActiveRecord文件夹中的所有.cs源文件,并且在整个解决方案中没有其他具有这些名称的文件。
虽然这不是问题,但是因为生成了正确的类,名称空间等,所以看到文件名末尾加上1
数字很烦人。
我正在使用SubSonic 3.0.0.3。
有谁知道为什么会这样?
答案 0 :(得分:4)
解决方案是删除生成的.cs文件并手动编辑.proj文件。右键单击VS2008中的项目并卸载项目。
在.proj文件中搜索LastGenOutput中的ActiveRecord1.cs并更改回ActiveRecord.cs。重复其他文件。不知何故,这些名字都会增加。
<None Include="T4AutoGen\ActiveRecord.tt">
<Generator>TextTemplatingFileGenerator</Generator>
<LastGenOutput>ActiveRecord.cs</LastGenOutput>
</None>
保存文件并重新加载项目。您的文件现在应该正确生成。
我不确定除了t4模板的一些奇怪之外,为什么会发生这种情况。这应该让你再次前进。