2010-05-31 11 views
16

Estoy intentando depurar una versión ligeramente modificada de la plantilla ADO.NET POCO Entity Generator usando las instrucciones Oleg Sych published hace unos años. Modifiqué la clave DbgJITDebugLaunchSetting como se recomienda.Plantilla de depuración T4 en VS 2010 bloqueos IDE

Aparece un cuadro de diálogo que indica que se ha alcanzado un punto de interrupción definido por el usuario. Sin embargo, en lugar de tener la opción de depurar con una nueva instancia de VS 2010, la instancia original de VS 2010 solo se bloquea y se reinicia automáticamente.

¿Es posible depurar plantillas T4 con VS 2010?

Respuesta

15

en Visual Studio 2010 debe llamar a Debugger.Launch() antes de Debugger.Break().

+0

que lo hizo tan lejos como el lanzamiento de una nueva instancia del depurador, pero ahora no consigo ninguna fuente disponible para la ubicación de la pila de llamadas: * 13gocwvx Microsoft.VisualStudio.TextTemplating9936422A04D1D8AC631D9CB3A394DD16.GeneratedTextTransformation.TransformText (+) 0x34 bytes * Cualquier pensamiento.? –

+0

Aceptando porque era parcialmente correcto, pero sigo recibiendo el error anterior. –

3

solución final que funciona para mí:

regedit:

Clave (sistemas x86): HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework

Clave (sistemas x64): HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework

valor: DbgJITDebugLaunchSetting

datos: 0x2

plantilla tt:

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

En lugar de utilizar System.Diagnostics.Debugger.Launch(); o Break(), adjunte el depurador manualmente.

  1. En una segunda instancia de VS2010, abrir la plantilla T4 desea depuración (sólo el archivo .tt está muy bien)
  2. Ir a Depurar -> conectar con el proceso y encontrar el original de devenv.exe proceso
  3. Añadir un punto de interrupción (bola roja) regular al lugar que desea iniciar la depuración (en la segunda VS2010 todavía)
  4. Ir a la original VS2010, guardar el archivo .tt y .. ¡bingo! La segunda instancia de vs2010 depurará su plantilla.
1

Para agregar a la solución de andrecarlucci, si guarda el archivo, se le pedirá que lo vuelva a cargar en la segunda instancia de Visual Studio antes de poder depurarlo. Si no necesita hacer más cambios pero necesita depurarlo varias veces, no tiene que guardar cada vez para entrar en el código. Simplemente puede hacer clic en el botón Transformar todas las plantillas en la barra de herramientas de Solution Explorer en la instancia original de Visual Studio.

Cuestiones relacionadas