我想计算 MsBuild 任务中的路径,以供另一个 MsBuild 任务使用。实现这一目标的最佳方法是什么?
设置环境变量,打印到控制台,...?
使用属性或项目。计算路径的 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元素取回所需的值。