msbuild
Volgorde van eigendom en itemevaluatie
Zoeken…
Opmerkingen
Voor meer informatie, zie Property en Item Evaluatie Orde op de MSDN-documentatie pagina Het vergelijken Eigenschappen en Items.
Voorbeeld ter illustratie van de volgorde van evaluatie
MSBuild evalueert de elementen PropertyGroup , Choose en ItemGroup die zich direct onder het Project element bevinden, vóór die in Target elementen.
- Direct onder het
Projectelement wordenPropertyGroupenChooseelementen geëvalueerd in de volgorde waarin ze verschijnen en vervolgens wordenItemGroupelementen geëvalueerd in de volgorde waarin ze verschijnen. - In
Targetelementen hebbenPropertyGroupenItemGroupdezelfde prioriteit en worden ze geëvalueerd in de volgorde waarin ze verschijnen.
Binnen bestanden waarnaar via Import wordt verwezen, evalueert MSBuild PropertyGroup , Choose en ItemGroup op dezelfde manier als hierboven, en alsof de inhoud van de geïmporteerde bestanden inline verscheen waar de Import zich bevindt.
De onderstaande opmerkingen geven eigenschapswaarden en itemaantallen voor en na MSBuild evalueert geselecteerde regels.
<Project DefaultTargets="FooTarget" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="FooTarget">
<ItemGroup>
<!-- '$(FooProp)' == '2', '@(FooItem->Count())' == '1' -->
<FooItem Include="foo value B" />
<!-- '$(FooProp)' == '2', '@(FooItem->Count())' == '2' -->
</ItemGroup>
<PropertyGroup>
<!-- '$(FooProp)' == '2', '@(FooItem->Count())' == '2' -->
<FooProp>3</FooProp>
<!-- '$(FooProp)' == '3', '@(FooItem->Count())' == '2' -->
</PropertyGroup>
</Target>
<ItemGroup>
<!-- '$(FooProp)' == '2', '@(FooItem->Count())' == '0' -->
<FooItem Include="foo value A" />
<!-- '$(FooProp)' == '2', '@(FooItem->Count())' == '1' -->
</ItemGroup>
<PropertyGroup>
<!-- '$(FooProp)' == '', '@(FooItem->Count())' == '0' -->
<FooProp>1</FooProp>
<!-- '$(FooProp)' == '1', '@(FooItem->Count())' == '0' -->
</PropertyGroup>
<Choose>
<When Condition=" '$(FooProp)' == '1' ">
<!-- '$(FooProp)' == '1', '@(FooItem->Count())' == '0' -->
<FooProp>2</FooProp>
<!-- '$(FooProp)' == '2', '@(FooItem->Count())' == '0' -->
</When>
</Choose>
</Project>
Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow