2010-04-08 50 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

相关问题