msbuild/xbuildのコマンドの出力にプロパティを設定するにはどうすればよいですか

StackOverflow https://stackoverflow.com/questions/2680661

質問

MSBUILD/XBUILDでは、コマンドラインでovveriddenを使用できる「libpath」プロパティを持ちたいと思います。 /p:libpath="/path/to/all/libs". 。しかし、このプロパティが定義されていないとき、私は電話したい pkg-config --retrieve-Path somePackage 現在のシステムパスを取得します。

私はそうだと思った ここ コマンドの出力をプロパティに保存する必要があります。
コマンドは常に1行の出力を返します。

私はようなものを試しました

<PropertyGroup>
  <LibPath />
</PropertyGroup>

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

しかし、それはうまくいきませんでした。

役に立ちましたか?

解決

execタスクは、実行するツールまたはコマンドから出力を収集できないため、execを使用してそれを行うことはできません。

PKG-Configを呼び出してこの出力をプロパティで収集するカスタムMSBuildタスクを作成する必要があります。

他のヒント

これを達成する方法についていくつかのアイデアがありました。
XBuild/MSBuildカスタムタスクを作成して、特定のコマンドを単純に実行し、出力を使用可能にしました。
結果を表示できます ここ.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top