Me gustaría tener una verbosidad diferente para el proyecto msbuild invocado desde la línea de comandos, y aquellos invocados por la tarea MSBuild desde dentro del proyecto. Por ejemplo:¿Cómo cambiar la verbosidad de la tarea MSBuild?
Dentro my.proj:
<Target Name=Foo>
<MSBuild Projects="a.csproj;b.csproj;c.csproj"/>
</Target>
En la línea de comandos:
msbuild /v:d my.proj
ahora cuando la tarea de MSBuild construye los archivos Csproj, lo hace con la verbosidad detallado así. Sin embargo, me gustaría construirlo con una mínima verborrea.
Sé que es posible invocar msbuild manualmente de este modo:
<Target Name=Foo>
<Exec Command="msbuild /v:m a.csproj"/>
<Exec Command="msbuild /v:m b.csproj"/>
<Exec Command="msbuild /v:m c.csproj"/>
</Target>
o en la práctica
<Target Name=Foo>
<Exec Command="msbuild /v:m %(Projectlist.Identity)"/>
</Target>
y esto funciona bien fuera de curso, pero entonces no se puede obtener la funcionalidad de la BuildInParallel
cambiar más (no creo que sea posible invocar msbuild desde la línea de comandos con múltiples proyectos sin que estén contenidos en una solución?)
Actualización
Fui con la opción de Ludwo: básicamente crear un registrador personalizado que tenga dos ConsoleLoggers como miembro. Uno tiene la verbosidad pasada en la línea de comando, la otra es 'mínima'. El registrador se registra para todos los eventos y los pasa a uno de los registradores dependiendo de si un archivo csproj se está construyendo actualmente o no. La salida se ve exactamente como lo normal, excepto que no incluye miles de líneas de los archivos csproj.
Este post por Scott Hanselman podría iluminarte. http://www.hanselman.com/blog/FasterBuildsWithMSBuildUsingParallelBuildsAndMulticoreCPUs.aspx –
+ lectura interesante.Sin embargo, mis proyectos no están incluidos en las soluciones, por lo que el modificador '/ m' no tiene el mismo efecto que la construcción efectiva de proyectos en paralelo: se siguen construyendo secuencialmente (actualizaré la pregunta para reflejar esto) – stijn
En uno de nuestros proyectos utilizamos MSBuild Sidekick para descubrir cómo construir nuestra jerarquía de productos, tal vez valga la pena echarle un vistazo para ayudar a la parrallización de las tareas también. http://www.attrice.info/msbuild/ Parece extraño que la verbosidad esté acoplada al paralelismo. –