msbuild
Ordre de l'évaluation des biens et des articles
Recherche…
Remarques
Pour plus de détails, voir Ordre d'évaluation des propriétés et des éléments sur la page de documentation MSDN Comparaison des propriétés et des éléments .
Exemple illustrant l'ordre d'évaluation
MSBuild évalue les éléments PropertyGroup , Choose et ItemGroup qui se trouvent directement sous l'élément Project avant ceux des éléments Target .
- Directement sous l'élément
ProjectélémentsPropertyGroupetChoosesont évalués dans l'ordre dans lequel ils apparaissent, puis les élémentsItemGroupsont évalués dans l'ordre dans lequel ils apparaissent. - Dans
TargetélémentsTarget,PropertyGroupetItemGrouppartagent la même priorité et sont évalués dans l'ordre dans lequel ils apparaissent.
Dans les fichiers référencés via Import , MSBuild évalue PropertyGroup , Choose et ItemGroup de la même manière que ci-dessus et comme si le contenu des fichiers importés apparaissait en ligne à l'emplacement de l' Import .
Les commentaires ci-dessous fournissent des valeurs de propriété et des nombres d'éléments avant et après que MSBuild évalue les lignes sélectionnées.
<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
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow