我想在MsBuild任务中计算一个路径,供另一个MsBuild任务使用。 完成此任务的最佳方法是什么?
设置环境变量,打印到控制台,......?
答案 0 :(得分:45)
使用属性或项目。您的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 元素来获取所需的值。