msbuild
Auftragseigenschaft und Artikelbewertung
Suche…
Bemerkungen
Weitere Informationen finden Sie unter Eigenschafts- und Artikelauswertungsreihenfolge auf der MSDN-Dokumentationsseite. Vergleich von Eigenschaften und Elementen .
Beispiel zur Veranschaulichung der Reihenfolge der Auswertung
MSBuild wertet PropertyGroup , Choose und ItemGroup Elemente , die direkt unter dem sind Project vor denen , die in sind Target
- Direkt unter dem
ProjectElement werdenPropertyGroupundChooseElemente in der Reihenfolge ausgewertet, in der sieItemGroupwerden. Anschließend werdenItemGroupElemente in der Reihenfolge ausgewertet, in der sieItemGroupwerden. - In den
TargetElementen habenPropertyGroupundItemGroupgleiche Priorität und werden in der Reihenfolge ausgewertet, in der sieItemGroupwerden.
In Dateien, auf die mit Import verwiesen wird, wertet MSBuild PropertyGroup , Choose und ItemGroup auf die gleiche Weise wie oben aus, als ob der Inhalt der importierten Dateien inline ItemGroup , wo sich der Import befindet.
In den folgenden Kommentaren werden Eigenschaftswerte und Elementanzahl vor und nach dem Auswerten ausgewählter Zeilen durch MSBuild angegeben.
<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
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow