2009-01-30 43 views

回答

10

T4模板文件可以集成到C++項目中,但比使用C#/ VB項目要多一點工作。在你的C++項目中創建一個新的文本文件並給它一個.tt擴展名。然後照常寫你的模板。一個C++項目需要進一步的工作才能讓它轉換模板。我得到它的快速和骯髒的方式是直接添加一個自定義生成步驟,並直接調用「C:\ Program Files \ Common Files \ Microsoft Shared \ TextTemplating \ 1.1 \ TextTransform.exe」。我發現的另一種方法是添加一個自定義的MSBuild任務。可以找到指令here

This頁面有更多的信息和一些使用T4代碼生成的其他網頁的良好鏈接。

+0

不知何故,它似​​乎不工作。嘗試創建一個新的Win32 C++項目。然後添加一個簡單的.tt文件並單擊生成。沒有東西會產生。 – 2009-02-02 07:07:48

+0

哎呀,你是對的。編輯我的答案。 – Logan5 2009-02-02 21:24:59

4

因爲這是一個vcproj文件(C++),因此使用vcbuild時,MSBuild任務將不起作用。獲得tt編譯的最簡單方法是像下面這樣添加自定義構建步驟。

「C:\ Program Files(x86)\ Common Files \ Microsoft Shared \ TextTemplating \ 1.1 \ TextTransform.exe」-out $( ProjectDir)\ VSProject.cpp -I $(ProjectDir)$(ProjectDir)\ VSProject.tt

我花了幾個小時研究上面的MSBuild任務解決方案,它對託管代碼來說很不錯,但是我看不到任何方法將它用於C++(將vcproj轉換爲csproj eek)