代码之家  ›  专栏  ›  技术社区  ›  Nils

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

  •  1
  • Nils  · 技术社区  · 14 年前

    在msbuild/xbuild中,我希望有一个“libpath”属性,可以在命令行上使用 /p:libpath="/path/to/all/libs" . 但是当这个属性未定义时,我想调用 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 回复  |  直到 14 年前
        1
  •  1
  •   Julien Hoarau    14 年前

    使用exec不能这样做,因为exec任务无法从其运行的工具或命令收集输出。

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

        2
  •  0
  •   Nils    14 年前

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