2010-01-26 58 views
1

我在几个项目中使用了SubSonic的ActiveRecord T4模板。今天,我将其中一个项目(不包含生成的.cs源文件)的相同模板添加到新项目中。为什么SubSonic的ActiveRecord T4模板生成ActiveRecord1.cs而不是ActiveRecord.cs?

而不产生

出于某种原因,当我运行T4模板代码生成器,:

ActiveRecord.csContext.csStoredProcedures.csStructs.cs

,模板生成器生成:

ActiveRecord1.csContext1.csStoredProcedures1.cs和代替Structs1.cs

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

虽然这不是问题,但是由于生成了正确的类,名称空间等,所以很烦人的是在文件名末尾添加了数字1

我使用的是SubSonic 3.0.0.3。

有没有人知道为什么会发生这种情况?

回答

4

解决方法是删除生成的.cs文件并手动编辑.proj文件。在VS2008中右键单击项目并卸载项目。

在.proj文件中搜索LastGenOutput中的ActiveRecord1.cs并将其更改回ActiveRecord.cs。重复其他文件。不知怎的,这些名字是递增的。

<None Include="T4AutoGen\ActiveRecord.tt"> 
    <Generator>TextTemplatingFileGenerator</Generator> 
    <LastGenOutput>ActiveRecord.cs</LastGenOutput> 
</None> 

保存文件重新加载项目。你的文件现在应该能正确生成。

我不知道为什么会发生这种情况,除了与t4模板的一些古怪。这应该让你再次去。

+0

啊哈!....我会记住下次。干得好先生! – Kev 2010-02-26 19:36:04

+0

感谢这些信息... – 2010-09-21 14:29:11

相关问题