Como seguramente todos sabéis unos de los puntos de extensibilidad más importante que provee MSBuild, realmente este es el punto de extensibilidad propiamente dicho, es la creación de tareas propias para incluir dentro de los Targets del Project File. ¿ Os habéis preguntado cómo se pueden depurar estas tareas que creáis? Seguramente muchos para salir del paso pensarán que una buena forma es como anteriormente depurábamos aplicaciones, logeando los pasos de las tareas para ver cómo está funcionando. No sé si la forma que voy a explicar a continuación es la mejor o no pero desde luego a mi no me parece mala ya que nos permite depurar las tareas directamente en Visual Studio como cualquier otro programa o librería.
Pasos para depurar nuestras tareas para MSBuild:
1º Abrir el proyecto de librería en el que se define la tarea customizada de MSBuild
2º Abrir las propiedades del proyecto, botón derecho sobre el proyecto en el explorador de soluciones y clic en propiedades
3º Cambiar en la pestaña de Debug la opción de StartProject por Start External Project
4º Establecer el path completo hacia MSBuild en la caja de texto de Start External Project
5º En Command line arguments establecer el path completo hacia un archivo Project File que incluya la tarea personalizada
6º Ahora ya puedes poner un break point en la clase de definición de la tarea y depurar tranquilamente
Saludos
Unai Zorrilla Castro