Ricerca…


Osservazioni

Per ulteriori dettagli, vedere Ordine di valutazione di proprietà e articoli nella pagina di documentazione di MSDN Confronto di proprietà ed elementi .

Esempio che illustra l'ordine di valutazione

MSBuild valuta gli elementi PropertyGroup , Choose e ItemGroup direttamente sotto l'elemento Project prima di quelli presenti negli elementi Target .

  • Direttamente sotto l'elemento Project , gli elementi PropertyGroup e Choose vengono valutati nell'ordine in cui vengono visualizzati e quindi ItemGroup elementi ItemGroup vengono valutati nell'ordine in cui vengono visualizzati.
  • Negli elementi di Target PropertyGroup e ItemGroup condividono la precedenza uguale e vengono valutati nell'ordine in cui vengono visualizzati.

All'interno dei file referenziati tramite Import , MSBuild valuta PropertyGroup , Choose e ItemGroup nello stesso modo come sopra, e come se il contenuto dei file importati fosse in linea dove si trova l' Import .

I commenti sottostanti forniscono valori di proprietà e conteggi delle voci prima e dopo MSBuild valuta le linee selezionate.

<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
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow