33

我想计算 MsBuild 任务中的路径,以供另一个 MsBuild 任务使用。实现这一目标的最佳方法是什么?

设置环境变量,打印到控制台,...?

4

1 回答 1

51

使用属性或项目。计算路径的 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 Task 调用另一个项目,并使用TargetOutputs元素取回所需的值。

于 2009-09-03T12:19:38.333 回答