msbuild - 如何使用 msbuild 获取 exec 任务输出

标签 msbuild exec msbuild-task

我正在尝试使用 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
  ----------------------------------------
  ----------------------------------------
  ----------------------------------------

如何获取脚本的输出?

最佳答案

大家好消息!您现在可以捕获 <Exec> 的输出从 .NET 4.5 开始。

像这样:

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

简单地说:

  • 添加ConsoleToMsBuild="true"给您<Exec>标签
  • 使用 ConsoleOutput 捕获输出<Output> 中的参数标签

终于!

Documentation here

关于msbuild - 如何使用 msbuild 获取 exec 任务输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8938679/

相关文章:

msbuild - 如何解决sonarqube中的代码行限制问题?

C - exec 执行带有参数的命令?

bash - 为什么我不能将查找结果通过管道传输到 cp,但它可以使用 exec?

MSbuild,如何访问内联任务代码中的项目属性值?

c++ - MSBuild配置错误WDK 8.1 Visual Studio 2015构建内核模式驱动

visual-studio-2010 - 如何修复错误 - 项目中不存在目标 "_CopyBinDeployableAssemblies"?

msbuild - 在 MsBuild 中声明动态配置文件路径

C Linux - 如何从另一个程序执行程序

asp.net-core - dotnetpublish 不会使用复制任务复制文件

windows - 如何确定 MSBuild 中的当前操作系统版本?