我正在嘗試爲代碼生成編寫一些漂亮且結構化的t4。我將我的邏輯分解爲可重用的函數,並將它們放入單獨的文件中(就像「普通」代碼一樣)。問題是我不能包含一個通用文件,因爲它將被包含多次。包含文件的T4「頭文件」
例如,我有4個文件:Core.tt
,File1.tt
,File2.tt
和MainTemplate.tt
。 Core.tt
包含在File1.tt
和File2.tt
。 雖然File1.tt
和File2.tt
包括在MainTemplate.tt
當我想從我MainTemplate.tt
收到以下錯誤產生的輸出:
Error 8 Compiling transformation: The type 'Microsoft.VisualStudio.TextTemplating62CD98C8FF0EB737CAFBD5ED17A158C3.GeneratedTextTransformation' already contains a definition for 'PropertyAttribute'
我想,其原因是Core.tt
已包含了兩次。有沒有解決我的問題的方法?在C++中可以添加頭文件:#ifndef xxx #define xxx #endif
我花了不到2個小時寫一個相當於T4這既解決了這個問題,並重新轉換所有依賴模板時庫模板變化的問題。 T4設計不好。不要使用它。 – Jack
@Jack:你會介意爲T4項目做貢獻嗎? – Vlad