2010-02-14 22 views
3

我正在使用T4生成一些DTO類+映射器。如何指定T4文件是否應該生成任何輸出

我分裂了一些可重複使用的比特的文件(其中包含常用的方法一些,其他一些常用的程序),並將它們包括到將產生我輸出的T4模板 - 這是所有好。

我的問題是,可重複使用的.tt文件會嘗試產生他們自己的輸出,並且每當我對它們進行更改時都會失敗(因爲它們會耦合到其他.tt文件),這很簡單。

我敢肯定,我看到某個地方一定的指導指定給定文件不應該嘗試和產生任何輸出,但我似乎無法追蹤回來。

任何幫助表示讚賞!

回答

4

在屬性(選擇文件,然後按F4)你想爲其抑制輸出T4文件,明確了「自定義工具」條目。

+0

這聽起來正是我需要的 - 有從標記這樣的方法嗎? – JohnIdol 2010-02-14 23:02:16

+0

它在項目的標記中 - 即.xxproj文件。 – 2010-02-14 23:23:13

+0

@JohnIdol - 我不認爲有一種方法可以在T4文件本身的標記中抑制輸出。正如Preet所說,該設置由項目文件中的 TextTemplatingFileGenerator元素的持久性來控制,因此您可以刪除該元素作爲通過VS GUI清除屬性的替代方法。 – 2010-02-15 08:44:27

1

重命名爲.ttinclude並看到如何繼續下去的亞....

+0

如果該文件已被添加爲T4文件,則「定製工具」仍將被定義。將擴展名從'tt'更改爲'ttinclude'不會清除此屬性。 – 2012-08-20 14:56:43

7

您可以指定無效的擴展來抑制模板的輸出,例如:

<#@ output extension="\n" #> 
+0

不錯的訣竅 - 謝謝! – JohnIdol 2010-02-16 19:10:14

+1

+1。這真可愛又可怕!它適用於我們的目的。我們正在將TT文件的輸出重定向到另一個位置,並需要抑制常規輸出。 – 2011-06-16 10:58:54

4

我不沒有足夠的'StackOverflow street cred'來回復Stanislav Kniazev的回答,因此必須在我自己的這裏發佈。感謝Stanislav Kniazev的領導。

下工作;但如果您使用的是T4語法熒光筆(如Tangible T4),您會發現它會突出顯示。

<#@輸出擴展= 「\ n」 #>

於是我找到設置擴展到的東西是不是一種逃避字符是這樣的:

<#@輸出擴展=「」#>

然後在代碼部分以編程方式設置文件擴展名,如下所示:

Host.SetFileExtension(「\ n」);然後

T4高亮被恢復。

相關問題