2010-04-21 3 views
1

msbuild/xbuild에서 /p:libpath="/path/to/all/libs"을 사용하여 명령 줄에서 ovveridden 할 수있는 "libPath"속성을 갖고 싶습니다. 그러나이 속성이 정의되지 않은 경우 pkg-config --retrieve-Path somePackage을 호출하여 현재 시스템 경로를 가져 오려고합니다.msbuild/xbuild에서 명령의 출력에 속성을 설정하는 방법

내가 생각한대로 here 속성에 저장 될 명령의 출력이 필요합니다.
명령은 항상 한 줄의 출력을 반환합니다.

나는

<PropertyGroup> 
    <LibPath /> 
</PropertyGroup> 

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

같은 것을 tryied했다 그러나 그것은 작동하지 않았다.

+0

.Net 4.5로 수행 할 수 있습니다. https://stackoverflow.com/questions/8938679/how-get-exec-task-output-with-msbuild를 참조하십시오. –

답변

1

Exec 태스크가 실행중인 도구 또는 명령의 출력을 수집 할 수 없으므로 exec를 사용하여 수행 할 수 없습니다.

pkg-config를 호출하고이 출력을 속성에 수집하는 사용자 지정 msbuild 작업을 작성해야합니다.

+0

그것이 내가 두려워했던 것입니다. 감사 – Nils

0

나는 이것을 달성하는 방법에 대한 아이디어가있었습니다.
주어진 명령을 실행하고 출력을 사용할 수 있도록 xbuild/msbuild 사용자 지정 작업을 만들었습니다.
결과는 here으로 볼 수 있습니다.