2010-01-26 59 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

相關問題