Reputation: 150118
I'm trying to debug a slightly-modified version of the ADO.NET POCO Entity Generator template using the directions Oleg Sych published a few years back. I modified the DbgJITDebugLaunchSetting key as recommended.
I get a dialog indicating that a user-defined breakpoint has been hit. However, rather than being presented with the option to debug with a new instance of VS 2010, the original instance of VS 2010 just crashes and auto-restarts.
Is it possible to debug T4 templates with VS 2010?
Upvotes: 16
Views: 4397
Reputation: 4428
Final solution which works for me:
regedit:
Key (x86 systems): HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework
Key (x64 systems): HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework
value: DbgJITDebugLaunchSetting
data: 0x2
tt template:
<#@ template debug="true" hostSpecific="true" #>
<# System.Diagnostics.Debugger.Launch(); System.Diagnostics.Debugger.Break(); #>
Upvotes: 3
Reputation: 41
To add to andrecarlucci's solution, if you save the file, you will be prompted to reload it in the second instance of Visual Studio before you can debug it. If you don't need to make further changes but need to debug it multiple times, you don't have to save every time in order to break into the code. You can simply click the Transform All Templates button on the Solution Explorer toolbar in the original instance of Visual Studio.
Upvotes: 1
Reputation: 6296
Instead of using System.Diagnostics.Debugger.Launch(); or Break(), attach the debugger manually.
Upvotes: 7
Reputation: 21
You also need debug=true:
<@#template debug="true" #> System.Diagnostics.Debugger.Launch(); Debugger.Break();
http://msdn.microsoft.com/en-us/library/bb126338.aspx
Upvotes: 2
Reputation: 6558
in Visual Studio 2010 you need to call Debugger.Launch() before Debugger.Break().
Upvotes: 15