2009-09-03 9 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> 

次の2つのMSBuildプロジェクト間の値を渡す必要がある場合は、MSBuildのタスクを使用して他を呼び出して、あなた価値を取り戻すためにTargetOutputs要素を使用する第三1を作成する必要があります欲しいです。

+2

私の場合、 'ItemName'は機能しませんでした。私はそれを 'PropertyName'に変更するとすぐに、それは魅力的に機能しました。 – sebagomez

+0

試しましたが、「TaskParameter」パラメータは「MyCustomTask」タスクでサポートされていません。パラメータがタスク上に存在することを確認し、設定可能なパブリックインスタンスプロパティです。 – jpierson

関連する問題