在VS 2010中调试T4模板崩溃了IDE

时间:2010-05-31 18:59:36

标签: debugging visual-studio-2010 t4

我正在尝试使用几年前的Oleg Sych published指令调试 ADO.NET POCO实体生成器模板的略微修改版本。我按照建议修改了 DbgJITDebugLaunchSetting 键。

我收到一个对话框,指示已经命中了用户定义的断点。但是,VS 2010的原始实例只是崩溃并自动重启,而不是提供使用VS 2010的新实例进行调试的选项。

是否可以使用VS 2010调试T4模板?

5 个答案:

答案 0 :(得分:15)

在Visual Studio 2010中,您需要在Debugger.Break()之前调用Debugger.Launch()。

答案 1 :(得分:7)

而不是使用System.Diagnostics.Debugger.Launch();或者Break(),手动附加调试器。

  1. 在vs2010的第二个例子中, 打开你想要的T4模板 debug(只是.tt文件很好)
  2. 转到调试 - >附加到Process并找到原始的devenv.exe 过程
  3. 添加常规断点 (红球)到你想去的地方 开始调试(在第二个 vs2010仍然)
  4. 转到原文 vs2010,保存.tt文件并... 答对了! vs2010的第二个实例 将调试您的模板。

答案 2 :(得分:3)

对我有用的最终解决方案:

注册表编辑器:

密钥(x86系统):HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework

密钥(x64系统):HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework

值:DbgJITDebugLaunchSetting

数据:0x2

模板:

<#@ template debug="true" hostSpecific="true"  #>
<# System.Diagnostics.Debugger.Launch(); System.Diagnostics.Debugger.Break(); #>

答案 3 :(得分:2)

您还需要debug = true:

&lt; @#template debug =“true”#&gt; System.Diagnostics.Debugger.Launch(); Debugger.Break();

http://msdn.microsoft.com/en-us/library/bb126338.aspx

答案 4 :(得分:1)

要添加到andrecarlucci的解决方案,如果保存文件,系统将提示您在Visual Studio的第二个实例中重新加载它,然后才能对其进行调试。如果您不需要进行进一步的更改但需要多次调试,则不必每次都进行保存以便进入代码。您只需单击Visual Studio原始实例中的解决方案资源管理器工具栏上的“转换所有模板”按钮即可。