Let's look at the example below.
There I have:
- target MAIN calls target t, and then calls target tt.
- target t calls target ttt, and target tt calls target tttt.
- target t defines the aa property, and target ttt modifies aa.
- target tttt is trying to print the aa value property.
- In short, we have: MAIN → {t → {ttt-> modifies aa, defines aa}, tt → tttt → prints aa}
But in target tttt we cannot "see" the updated value (by ttt)! How to make this value visible to target tttt?
The whole scenario is as below:
<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>
source
share