2008-12-10 13 views
11

Estoy intentando depurar la MSBuild Customtask, que acabo de crear, pero por alguna razón nunca se detiene en el punto de interrupción. Incluso he intentado esto:Cómo depurar MSBuild Customtask

public override bool Execute() 
    { 
     System.Diagnostics.Debugger.Break(); 

y ha añadido un punto de quiebre en esa línea ... Incluso eliminado toda el otro código en el método y que no cambiaba nada.

¿Se necesita algo especial para poder depurar la creación de tareas personalizadas para MSBuild?

Respuesta

20

Es un poco de un truco, pero siempre se puede simplemente poner esta línea de código donde sea que desea iniciar la depuración:

System.Diagnostics.Debugger.Launch(); 

Cuando se invoca, el CLR lanzará en peticiones de diálogo qué depurador quieres adjuntar

+0

Eso funcionó, pero no entiendo por qué Break() no ... gracias, al menos puedo depurar – CheGueVerra

+0

obtengo una incapacidad de adjuntar al proceso de bloqueo. El depurador no está instalado correctamente. No se puede depurar el tipo de código solicitado. Ejecute la instalación para instalar o reparar el depurador. ¿Alguna sugerencia de cómo resolverlo? ¿Debería reinstalar Visual Studio? – topwik

+2

¡Respuesta increíble! ¡Muchas gracias! –

7

Esto es lo que hago ... En el cuadro de diálogo Propiedades del proyecto en la pestaña Depurar Seleccione "Iniciar una aplicación externa" - coloque C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ MSBuild.exe en el cuadro ..

Luego, en la línea de comandos pARMS, ponga sus argumentos/Target: Sea cual sea test.proj

poner fin código en su tarea personalizada e iniciar la aplicación ..

+0

Buena sugerencia ... Lo intentaré más tarde, thx – CheGueVerra

+0

encontré esa sugerencia [aquí] (http://blogs.msdn.com/b/msbuild/archive/2005/09/28/474951.aspx) . He jugado con el concepto pero nunca lo hice funcionar realmente. – topwik