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!
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