我们有一组T4模板,我们刚刚迁移到VS 2010并且它们已经编译但不再一样。
为了了解在幕后实际发生的事情,看看T4生成的临时cs文件以产生实际的T4转换会很有用。
答案 0 :(得分:7)
由于您现在使用的是Visual Studio 2010,因此您还可以将模板上的自定义工具从TextTemplatingFileGenerator更改为TextTemplatingFilePreprocessor。
这会将底层代码直接吐出到您的项目中而不是常规模板输出。
答案 1 :(得分:5)
如果您设置
<#@ template debug="true"#>
然后生成的代码将保留在临时目录中。在我的Windows 7系统上,即C:\Users\John Saunders\AppData\Local\Temp
。
答案 2 :(得分:0)
我不知道怎么做你想要的,但我知道如何逐步完成visual studio中的t4代码。您需要启动Visual Studio的第二个实例,并使用Debug-&gt; Attach to process ...将其附加到第一个实例...(将其附加到自身,很奇怪,我知道)。然后,这允许您在第二个实例中的T4文件中放置断点,它将停止并让您单步执行它,看看发生了什么。
编辑:
你需要在visual studio中进行t4转换,而不是命令行工具才能实现。将.tt文件放入项目中,并将其属性中的“自定义工具”设置为“TextTemplatingFileGenerator”。每次告诉文件保存时,或右键单击并在文件上说“运行自定义工具”时,它都会生成文件。有关详细信息,请参阅this MSDN article。
我还建议获得tangible T4 editor免费版本,为我需要的大约90%的用例添加代码突出显示和智能感知(它只为.NET框架的Core.dll中的函数添加它) 。付费版本会为所有附加的程序集添加智能感知。
Edit2:如果您真的想要它使用的临时cs文件,您可以看到调试器中加载了临时文件夹中的哪些cs文件(我不记得确切位置)。