2008-12-17 56 views
1

我想使用T4爲部分類生成屬性。我遇到了配置問題,我的.TT文件與我想要擴展的類文件位於同一個項目中。因此,如果我必須將程序集包含在.TT文件中,它會被鎖定。我試圖在預編譯中執行一個命令行,但問題在於VS總是希望用該項目重新編譯.TT文件。如何使用T4和Visual Studio擴展部分類

我能想到的唯一解決方案是將.tt文件重命名爲.t4,然後使用帶TextTransform -out的預生成命令在項目目錄中創建.cs文件。

任何人都可以想到一個更清潔的方式來做到這一點?

回答

3

假設鎖定是由您的模板使用反射來讀取需要擴展的部分類的元數據引起的,如果您使用CodeModel,則可以解決鎖定問題。此API由Visual Studio提供,可讓您直接從源文件獲取元數據,而無需編譯分部類或加載編譯的DLL。以下是使用此方法的T4代碼生成器的一個示例:http://www.olegsych.com/2008/07/t4-template-for-generating-sql-view-from-csharp-enumeration

+0

謝謝Oleg。我馬上試試這個。 – GoClimbColorado 2009-01-03 16:12:02