msbuild
Beställning av utvärdering av egendom och objekt
Sök…
Anmärkningar
Mer information finns i Order- och objektutvärderingssida på MSDN-dokumentationssidan Jämför egenskaper och objekt .
Exempel som illustrerar utvärderingsordningen
MSBuild utvärderar PropertyGroup , Choose och ItemGroup element som ligger direkt under Project före de som finns i Target .
- Direkt under
ProjectutvärderasPropertyGroupochChooseelementen i den ordning de visas och sedanItemGroupelementen i den ordning de visas. - I
TargetelementPropertyGroupochItemGroupdela samma prioritet och utvärderas i den ordning i vilken de uppträder.
Inom filer som refereras via Import utvärderar MSBuild PropertyGroup , Choose och ItemGroup på samma sätt som ovan, och som om de importerade filernas innehåll verkade i linje där Import finns.
Kommentarerna nedan ger egenskaper för värden och objekträkningar före och efter MSBuild utvärderar utvalda rader.
<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
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow