从MsBuild任务返回输出?

rip*_*234 31 msbuild msbuild-task

我想在MsBuild任务中计算一个路径,供另一个MsBuild任务使用.完成此任务的最佳方法是什么?

设置环境变量,打印到Console,......?

Jul*_*rau 46

使用属性或项目.您的MSBuild计算路径,将其作为属性返回,并将此属性用作其他任务的输入.

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

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

        return true;
    }
}
Run Code Online (Sandbox Code Playgroud)
<Target Name="CalculateAndUsePath">
  <CalculatePathTask>
    <Output TaskParameter="Path" PropertyName="CalculatePath"/>
  </CalculatePathTask>

  <Message Text="My path is $(CalculatePath)"/>
</Target>
Run Code Online (Sandbox Code Playgroud)

如果需要在两个MSBuild项目之间传递值,则应创建第三个使用MSBuild Task调用另一个的值,并使用TargetOutputs元素获取所需的值.

  • 只是一个简短的说明:在我的情况下,`ItemName`无效.一旦我将其改为"PropertyName",它就像一个魅力. (2认同)