2010-04-08 37 views
26

我正在使用T4toolbox生成一堆文件,假設我的t4文件名是x.t4,但默認它生成一個x.txt,裏面什麼也沒有,我可以告訴t4引擎不要這樣做嗎?如何不輸出默認T4生成的文件?

+0

你只告訴不應該發生什麼,而不是發生什麼。預期產出是多少? – 2010-04-08 15:32:20

+0

我的預期輸出不是輸出默認輸出。假設我的x.t4默認生成f1.cs,f2.cs和x.txt,現在我只想輸出f1.cs,f2.cs,因爲x.txt是空的,根本沒有任何值。但我不知道如何擺脫x.txt。 – 2010-04-08 15:58:29

回答

6

不是。此文件由Visual Studio創建,而不是由T4創建。你所能做的最好的是生成一些有用的東西,比如實際的代碼或者代碼生成運行的日誌。

+0

謝謝。這也是我的觀察,但T4MVC如何完成它?運行T4MVC.tt似乎不會生成T4MVC。*文件。 – Emmett 2012-04-02 20:13:04

+0

@Oleg Sych MSFT我在這裏問一個相關的問題:http://stackoverflow.com/questions/13838142/put-all-methods-in-one-tt-file-and-use-it-in-another-t4-文件在代碼模板,你請檢查它。 – Saeid 2012-12-12 11:34:25

18

右鍵單擊解決方案資源管理器中的x.t4,然後單擊屬性。它會在自定義工具旁邊顯示「TextTemplatingFileGenerator」。刪除這個。

x.t4現在將你的項目的一部分,但它不會產生任何東西。當.t4/.tt文件僅用作其他模板中的包含文件時,這非常有用。

+1

這必須標記爲答案。 – Achilles 2014-07-25 19:13:23

+11

它不應被標記爲答案。問題是如何忽略輸出空白文件,而不是如何避免T4運行。您可能需要運行T4來生成一組單獨的文件(即,您使用MultipleOutputHelper.ttinclude),但不希望隨該文件一起生成這個空文件。 Athari提供了正確的答案 – YMC 2015-05-06 22:57:22

34

找到了招數/黑客!

<#@ output extension="/" #> 

<#@ output extension="\\" #> 

的Visual Studio 2012既不輸出默認的文件,也沒有抱怨其不能太多。

P.S.我試過用T4MultiFile NuGet package,但它應該與T4Toolbox一起工作,我想。

+1

好的。不幸的是,您仍然會收到關於輸出文件名無效的警告。 – 2012-12-20 01:42:48

+0

@OlegSych至少這不是一個錯誤。 :)像「」xml /../ 1.txt「」甚至「xml /../../../ 1.txt」的「擴展」也可以工作。該文件已創建,但可以放置在項目中的任何位置(它仍然「附加」到解決方案資源管理器中的TT文件)。 – Athari 2012-12-20 12:30:34

+0

這是完美的! – kamranicus 2013-03-08 15:44:14