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

时间:2010-04-21 05:58:43

标签: msbuild properties exec xbuild

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

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

我试过像

这样的东西
<PropertyGroup>
  <LibPath />
</PropertyGroup>

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

但那没用。

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

我对如何实现这一点有了一些想法 我创建了一个xbuild / msbuild自定义任务来简单地执行给定的命令并使输出可用 可以查看结果here