为什么SubSonic的ActiveRecord T4模板会生成ActiveRecord1.cs而不生成ActiveRecord.cs?

时间:2010-01-26 15:53:14

标签: c# subsonic subsonic3 t4 subsonic-active-record

我在几个项目中使用过SubSonic的ActiveRecord T4模板。今天,我将其中一个项目(没有生成的.cs源文件)中的相同模板添加到新项目中。

由于某些原因,当我运行T4模板代码生成器时,而不是生成:

ActiveRecord.csContext.csStoredProcedures.csStructs.cs

模板生成器创建:

ActiveRecord1.csContext1.csStoredProcedures1.csStructs1.cs代替。

我删除了ActiveRecord文件夹中的所有.cs源文件,并且在整个解决方案中没有其他具有这些名称的文件。

虽然这不是问题,但是因为生成了正确的类,名称空间等,所以看到文件名末尾加上1数字很烦人。

我正在使用SubSonic 3.0.0.3。

有谁知道为什么会这样?

1 个答案:

答案 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模板的一些奇怪之外,为什么会发生这种情况。这应该让你再次前进。

相关问题