我正在尝试在Visual Studio 2008中调试T4模板的执行。
我在Visual Studio 2008中调试T4模板时发现的所有信息都表示您可以在模板中设置断点(红点),就像它是常规代码文件一样。我安装了Clarius T4代码荧光笔,所以我的T4模板是彩色的,但我无法设置断点。当我点击边距时没有任何反应。
我已经尝试过Debugger.Break(),它启动了一个新的VS.NET实例,但它无法加载我的模板中的代码。我收到一个对话框,上面写着“当前位置没有可用的源代码。”如果我在另一个实例中加载了相同的项目,如果我启动一个新实例,就会发生这种情况。
是什么给出了?
答案 0 :(得分:25)
设置以下内容:
<#@ template debug="true" hostSpecific="true" #>
<#@ import namespace="System.Diagnostics" #>
然后在你的模板中
Debugger.Launch();
VS将在VS 2010的新实例中启动JIT调试器
答案 1 :(得分:14)
在Visual Studio 2013中:
无需附加第二个Visual Studio实例。
答案 2 :(得分:8)
好的 - 想通了。无论Oleg's article说什么,都无法启动新实例。 (对Sych先生来说,他的博客是T4代码生成的福音!)
瞧。
答案 3 :(得分:5)
确保在模板指令中打开调试选项:
&lt;#@ template language =“C#”debug =“true”#&gt;
这使得T4保存了在Visual Studio中调试所需的源代码和符号文件。