I have seen this several times:
<PropertyGroup Label="UserMacros">
<SomePropertyName>trunk</SomePropertyName>
</PropertyGroup>
<ItemGroup>
<BuildMacro Include="SomePropertyName">
<Value>$(SomePropertyName)</Value>
</BuildMacro>
</ItemGroup>
How is this different from just defining the property? To my surprise, there are only three results for this word on the MSDN, and only one is in English. The one result didn't really help me understand the construct above.