Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Debugging 在VS 2010 IDE中调试T4模板_Debugging_Visual Studio 2010_T4 - Fatal编程技术网

Debugging 在VS 2010 IDE中调试T4模板

Debugging 在VS 2010 IDE中调试T4模板,debugging,visual-studio-2010,t4,Debugging,Visual Studio 2010,T4,我正在尝试使用几年前的说明调试ADO.NET POCO实体生成器模板的稍微修改版本。我按照建议修改了DbgJITDebugLaunchSetting键 我得到一个对话框,指示用户定义的断点已命中。但是,VS 2010的原始实例没有提供使用VS 2010的新实例进行调试的选项,而是崩溃并自动重新启动 是否可以使用VS 2010调试T4模板?在Visual Studio 2010中,您需要在调试器.Break()之前调用Debugger.Launch()。您还需要debug=true: Syste

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

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


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

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

您还需要debug=true:

System.Diagnostics.Debugger.Launch(); Debugger.Break()


适合我的最终解决方案:

regedit:

密钥(x86系统):
HKEY\U本地\U机器\SOFTWARE\Microsoft\.NETFramework

密钥(x64系统):
HKEY\U LOCAL\U MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework

值:
DbgJITDebugLaunchSetting

数据:
0x2

tt模板:

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

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

  • 在vs2010的第二个实例中, 打开您想要的T4模板 调试(只需.tt文件即可)
  • 转到调试->附加到进程并找到原始devenv.exe 过程
  • 添加一个常规断点 (红球)到你想去的地方 启动调试(在第二步中) vs2010(仍然)
  • 去原版 vs2010,保存.tt文件并。。。 答对 了vs2010的第二个实例 将调试您的模板

  • 要添加到andrecarlucci的解决方案中,如果保存该文件,则会提示您在调试它之前在Visual Studio的第二个实例中重新加载该文件。如果您不需要进行进一步的更改,但需要多次调试,那么您不必每次都进行保存以插入代码。您只需单击Visual Studio原始实例中解决方案资源管理器工具栏上的Transform All Templates(转换所有模板)按钮即可。

    这样就可以启动一个新的调试器实例,但现在我没有可用于调用堆栈位置的源代码:13gocwvx!Microsoft.VisualStudio.TextTemplating9936422A04D1D8AC631D9CB3A394DD16.GeneratedTextTransformation.TransformText()+0x34字节。有什么想法吗?接受,因为它部分是正确的,但我仍然得到上面的错误。