Elemento Choose (MSBuild)

Aggiornamento: novembre 2007

Valuta gli elementi figlio per selezionare un insieme di elementi ItemGroup e/o PropertyGroup da valutare.

<Choose>
    <When Condition="'StringA'=='StringB'">... </When>
    <Otherwise>... </Otherwise>
</Choose>

Attributi ed elementi

Nelle sezioni riportate di seguito vengono illustrati attributi, elementi figlio e padre.

Attributi

Nessuno.

Elementi figlio

Elemento

Descrizione

Otherwise

Elemento facoltativo.

Specifica gli elementi PropertyGroup e ItemGroup del blocco di codice da valutare se le condizioni di tutti gli elementi When restituiscono false. In un elemento Choose può essere presente al massimo un elemento Otherwise ed è necessario che sia l'ultimo.

When

Elemento obbligatorio.

Specifica un blocco di codice selezionabile dall'elemento Choose. In un elemento Choose possono essere presenti uno o più elementi When.

Elementi padre

Elemento

Descrizione

Otherwise

Specifica il blocco di codice da eseguire se le condizioni di tutti gli elementi When restituiscono false.

Project

Elemento principale obbligatorio di un file di progetto MSBuild.

When

Specifica un blocco di codice selezionabile dall'elemento Choose.

Note

Gli elementi Choose, When e Otherwise vengono utilizzati insieme per fare in modo che sia possibile selezionare una sezione di codice da eseguire tra diverse alternative. Per ulteriori informazioni, vedere Costrutti condizionali di MSBuild.

Esempio

Nel progetto riportato di seguito l'elemento Choose viene utilizzato per selezionare l'insieme di valori delle proprietà da impostare negli elementi When. Se gli attributi Condition di entrambi gli elementi When restituiscono false, i valori delle proprietà dell'elemento Otherwise vengono impostati.

<Project
    xmlns="https://schemas.microsoft.com/developer/msbuild/2003" >
    <PropertyGroup>
        <Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
        <OutputType>Exe</OutputType>
        <RootNamespace>ConsoleApplication1</RootNamespace>
        <AssemblyName>ConsoleApplication1</AssemblyName>
        <WarningLevel>4</WarningLevel>
    </PropertyGroup>
    <Choose>
        <When Condition=" '$(Configuration)'=='debug' ">
            <PropertyGroup>
                <DebugSymbols>true</DebugSymbols>
                <DebugType>full</DebugType>
                <Optimize>false</Optimize>
                <OutputPath>.\bin\Debug\</OutputPath>
                <DefineConstants>DEBUG;TRACE</DefineConstants>
            </PropertyGroup>
            <ItemGroup>
                <Compile Include="UnitTesting\*.cs" />
                <Reference Include="NUnit.dll" />
            </ItemGroup>
        </When>
        <When Condition=" '$(Configuration)'=='retail' ">
            <PropertyGroup>
                <DebugSymbols>false</DebugSymbols>
                <Optimize>true</Optimize>
                <OutputPath>.\bin\Release\</OutputPath>
                <DefineConstants>TRACE</DefineConstants>
            </PropertyGroup>
        </When>
        <Otherwise>
            <PropertyGroup>
                <DebugSymbols>true</DebugSymbols>
                <Optimize>false</Optimize>
                <OutputPath>.\bin\$(Configuration)\</OutputPath>
                <DefineConstants>DEBUG;TRACE</DefineConstants>
            </PropertyGroup>
        </Otherwise>
    </Choose>
    <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
</Project>

Vedere anche

Concetti

Riferimenti dello schema del file di progetto MSBuild

Riferimenti

Costrutti condizionali di MSBuild