如何使用msbuild获取exec任务输出
我试图通过使用msbuild
exec任务得到简单的输出:
<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>
但是得到下一个输出:
echo test output test output echo test output test output ---------------------------------------- ---------------------------------------- ----------------------------------------
我怎样才能得到我的脚本输出?
大家好消息! 您现在可以从.NET 4.5中捕获<Exec>
输出。
喜欢这个:
<Exec ... ConsoleToMSBuild="true"> <Output TaskParameter="ConsoleOutput" PropertyName="OutputOfExec" /> </Exec>
只是:
- 将
ConsoleToMsBuild="true"
添加到您的<Exec>
标记中 - 使用
<Output>
标记中的ConsoleOutput
参数捕获输出
最后!
文档在这里
我已经到了这样的地步:我对MSBuild的局限性感到非常沮丧,以及那些本该工作的东西,但是不是(至less不是在任何情况下),几乎任何时候我都需要用MSBuild来做任何事情,我用C#创build了一个自定义的构build任务。
如果没有其他的build议是可行的,那么你当然可以这样做。
您可以将输出pipe道传输到一个文件,然后读回来。
echo test output > somefile.txt