msbuild exec msbuild-task

Cómo obtener salida de tarea exec con msbuild



msbuild-task (3)

¡Buenas noticias para todos! Ahora puede capturar la salida de <Exec> partir de .NET 4.5.

Me gusta esto:

<Exec ... ConsoleToMSBuild="true"> <Output TaskParameter="ConsoleOutput" PropertyName="OutputOfExec" /> </Exec>

Simplemente:

  • Agregue ConsoleToMsBuild="true" a su etiqueta <Exec>
  • Capture la salida utilizando el parámetro ConsoleOutput en una etiqueta <Output>

¡Finalmente!

Documentación aquí

Estoy tratando de obtener un resultado simple por la tarea msbuild con msbuild :

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Target Name="Test"> <Exec Command="echo test output"> <Output TaskParameter="Outputs" ItemName="Test1" /> </Exec> <Exec Command="echo test output"> <Output TaskParameter="Outputs" PropertyName="Test2" /> </Exec> <Message Text="----------------------------------------"/> <Message Text="@(Test1)"/> <Message Text="----------------------------------------"/> <Message Text="$(Test2)"/> <Message Text="----------------------------------------"/> </Target> </Project>

Pero obtenga el siguiente resultado:

echo test output test output echo test output test output ---------------------------------------- ---------------------------------------- ----------------------------------------

¿Cómo puedo obtener resultados de mi script?


He llegado al punto en el que estoy tan frustrado con las limitaciones de MSBuild, y las cosas que se supone que funcionan, pero no (al menos no en todos los contextos), eso casi siempre que necesito hacer algo con MSBuild , Creo una tarea de compilación personalizada en C #.

Si ninguna de las otras sugerencias funciona, entonces ciertamente podría hacerlo de esa manera.


Puede canalizar la salida a un archivo, por así decirlo, y volver a leerla.

echo test output > somefile.txt