让我们考虑下面的例子。
在这个例子中,我有:
- 目标MAIN调用目标t,然后调用目标tt。
- 目标t调用目标ttt,目标tt调用目标tttt。
- 目标t定义属性aa,目标ttt修改属性aa。
- 目标tttt尝试打印属性aa的值。
- 简而言之,我们有:MAIN -> {t -> {ttt->修改aa,定义aa},tt -> tttt -> 打印aa}
但是在目标tttt中,我们无法“看到”aa的更新值(由ttt!)。如何使该值对目标tttt可见?
整个脚本如下:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="MAIN" >
<Target Name="MAIN" >
<CallTarget Targets="t" />
<CallTarget Targets="tt" />
</Target>
<Target Name="t">
<Message Text="t" />
<PropertyGroup>
<aa>1</aa>
</PropertyGroup>
<CallTarget Targets="ttt" />
</Target>
<Target Name="tt">
<Message Text="tt" />
<CallTarget Targets="tttt" />
</Target>
<Target Name="ttt">
<PropertyGroup>
<aa>122</aa>
</PropertyGroup>
<Message Text="ttt" />
</Target>
<Target Name="tttt">
<Message Text="tttt" />
<Message Text="tttt:$(aa)" />
</Target>
</Project>