Pregunta

Estoy intentando depurar la ejecución de una plantilla de T4 en Visual Studio 2008.

Toda la información que estoy encontrando en la depuración de las plantillas T4 en Visual Studio 2008 digamos que se puede establecer un punto de interrupción (punto rojo) en la plantilla como si fuera un archivo de código regular. Tengo el código rotulador Clarius T4 instalado, por lo que es de color mi plantilla T4, pero No se puede establecer un punto de interrupción. Cuando hago clic en el margen no pasa nada.

He intentado Debugger.Break (), y se pone en marcha una nueva instancia de VS.NET, pero no se puede cargar el código de mi plantilla. Me sale un cuadro de diálogo que dice "No hay ningún código fuente disponible para la ubicación actual." Esto sucede si tengo el mismo proyecto cargado en la otra instancia de si hilo hasta una nueva instancia.

Lo que da?

¿Fue útil?

Solución 3

OK-lo descubrió. El lanzamiento de una nueva instancia no es una opción, independientemente de lo que Oleg artículo dice. (No diss al Sr. Sych, su blog es Evangelio para la generación de código T4!)

  1. Iniciar una segunda instancia de Visual Studio,
  2. Abrir un archivo (cualquier archivo) lo que el menú de depuración aparece.
  3. Seleccione "conectar con el proceso ..." y seleccionar la otra instancia VS.NET
  4. Guardar la plantilla en la instancia adjunta de VS.NET (o haga clic derecho y seleccione Ejecutar Herramienta personalizada)

Voila.

Otros consejos

Configurar el siguiente:

<#@ template debug="true" hostSpecific="true" #>
<#@ import namespace="System.Diagnostics" #>

A continuación, en la plantilla

Debugger.Launch();

VS se iniciará el depurador JIT en una nueva instancia de VS 2010

En Visual Studio 2013:

  1. Establecer un punto de interrupción en el archivo .tt
  2. Haga clic en el archivo .tt en el Explorador de soluciones
  3. Seleccionar "Depuración plantilla T4"
  4. Listo!

No fijar una segunda instancia de Visual Studio necesario.

Asegúrese de que se activa la opción de depuración en la directiva de plantilla:

<# @ plantilla language = "C #" debug = "true" #>

Esto hace T4 guardar el código fuente y los archivos necesarios para la depuración de símbolo en Visual Studio.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top