如何在msbuild/xbuild中为命令的输出设置属性

如何在msbuild/xbuild中为命令的输出设置属性,msbuild,properties,exec,xbuild,Msbuild,Properties,Exec,Xbuild,在msbuild/xbuild中,我希望有一个“libPath”属性,可以在命令行上使用/p:libPath=“/path/to/all/libs”对其进行验证。但是当这个属性未定义时,我想调用pkg config--retrieve Path somePackage来获取当前的系统路径 我认为我需要将命令的输出存储在属性中。 该命令始终返回一行输出 我试过类似的东西 <PropertyGroup> <LibPath /> </PropertyGroup>

在msbuild/xbuild中,我希望有一个“libPath”属性,可以在命令行上使用
/p:libPath=“/path/to/all/libs”
对其进行验证。但是当这个属性未定义时,我想调用
pkg config--retrieve Path somePackage
来获取当前的系统路径

我认为我需要将命令的输出存储在属性中。
该命令始终返回一行输出

我试过类似的东西

<PropertyGroup>
  <LibPath />
</PropertyGroup>

<Task ....>
  <Exec Command="pkg-config --retrieve-Path somePackage"
        Condition="$(LibPath)' == ''">
   <OutputTaskParameter="output"
          PropertyName="LibPath" />
  </Exec>
</Task>


但这不起作用。

您不能使用exec执行此操作,因为exec任务无法从其运行的工具或命令收集输出


您必须编写一个自定义msbuild任务来调用pkg config并在属性中收集此输出。

您不能使用exec执行此操作,因为exec任务无法从其运行的工具或命令收集输出


您必须编写一个自定义msbuild任务来调用pkg config并将此输出收集到属性中。

可以使用.Net 4.5完成此任务。另请参见。它可以通过.NET4.5完成。另见。