2009-09-03 5 views

답변

42

속성이나 항목을 사용하십시오. MSBuild는 경로를 계산하고 속성으로 반환하며이 속성을 다른 작업의 입력으로 사용합니다.

public class CalculatePathTask : ITask 
{ 
    [Output] 
    public String Path { get; set; } 

    public bool Execute() 
    {         
     Path = CalculatePath(); 

     return true; 
    } 
} 
<Target Name="CalculateAndUsePath"> 
    <CalculatePathTask> 
    <Output TaskParameter="Path" PropertyName="CalculatePath"/> 
    </CalculatePathTask> 

    <Message Text="My path is $(CalculatePath)"/> 
</Target> 

두의 MSBuild 프로젝트 사이의 값을 전달해야하는 경우 값을 다시 얻을은 MSBuild 작업을 사용하여 다른를 호출하고 TargetOutputs에게 요소를 사용하는 세 번째를 만들어야합니다 당신을 필요.

+2

단지 짧은 메모 : 제 경우에는'ItemName'이 작동하지 않았습니다. "PropertyName"으로 변경하자마자 매력처럼 작동했습니다. – sebagomez

+0

시도했으나 "TaskParameter"매개 변수가 "MyCustomTask"작업에서 지원되지 않습니다. 매개 변수가 작업에 있는지 확인하십시오.이 매개 변수는 설정 가능한 public 인스턴스 속성입니다. ' – jpierson

관련 문제