Buenas,
más de 5 años después de la implantación de MSBuild como tecnología para la compilación de proyectos y tareas en Visual Studio, por fin tenemos la posibilidad de depurar los proyectos para la versión MSBuild 4.0.
El siguiente tutorial muestra como depurar el siguiente proyecto:
1: <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"
2: InitialTargets="Target1">
3: <Target Name="Target1">
4: <Message Text="Target 1" />
5: <CallTarget Targets="Target2" />
6: </Target>
7: <Target Name="Target2">
8: <Message Text="Target 2" />
9: <CallTarget Targets="Target3" />
10: </Target>
11: <Target Name="Target3">
12: <Message Text="Target 3" />
13: </Target>
14: </Project>
Tutorial
1. Para habilitar la depuración de proyectos MSBuild, es necesario agregar una clave nueva en el registro de Windows.
En [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\4.0] agregar una clave llamada [debuggerenabled] con valor [true]
2. El siguiente paso es lanzar un proyecto de MSBuild utilizando el flag /debug. Por ejemplo:
msbuild /debug <project.proj>
En el caso de trabajar en un entorno x64, es necesario invocar la versión específica de 64 bits de MsBuild, por ejemplo:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\msbuild.exe /t:rebuild /debug <project.proj>
3. Cuando lanzamos el proyecto con el flag de depuración, veremos que se lanza la ventana de depuración de Visual Studio 2010. En este punto comenzamos el proceso de la depuración:
4. Lo primero que vemos en el editor, es que ya tenemos el clásico step-by-step de depuración, pero en este caso en un proyecto de MSBuild.
5. Podemos utilizar F10 o F11 y depurar paso a paso. Además podemos agregar un punto de interrupción en el Target2 como muestra la siguiente imagen y ejecutar el proyecto hasta el punto de depuración.
6. Finalmente, también podemos tener acceso a las variables locales de ejecución para concer el contexto de ejecución y los valores de las variables.
Ahora que los proyectos de build se basan en Workflow Foundation, esta ayuda llega un poco tarde. Pero mejor tarde que nunca.
Saludos @ Here
El Bruno
Referencias:


Leave a comment