Choose, élément (MSBuild)

Évalue des éléments enfants pour sélectionner un jeu d'éléments ItemGroup et/ou d'éléments PropertyGroup à évaluer.

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

Attributs et éléments

Les sections suivantes décrivent des attributs, des éléments enfants et des éléments parents.

Attributs

Aucun

Éléments enfants

Élément

Description

Autrement

Élément facultatif.

Spécifie le bloc de code des éléments PropertyGroup et ItemGroup à évaluer si les conditions de tous les éléments When ont la valeur false. Un élément Choose peut ne contenir aucun élément Otherwise ou en contenir un seul et il doit s'agir du dernier élément.

When

Élément requis.

Spécifie un bloc de code qui peut être sélectionné par l'élément Choose. Un élément Choose peut contenir un ou plusieurs éléments When.

Éléments parents

Élément

Description

Autrement

Spécifie le bloc de code à exécuter si les conditions de tous les éléments When ont la valeur false.

Projet

Élément racine requis d'un fichier projet MSBuild.

When

Spécifie un bloc de code qui peut être sélectionné par l'élément Choose.

Notes

Les éléments Choose, When et Otherwise sont utilisés ensemble pour offrir un moyen de sélectionner une section de code à exécuter parmi plusieurs alternatives possibles. Pour plus d'informations, consultez Constructions conditionnelles MSBuild.

Exemple

Le projet suivant utilise l'élément Choose pour sélectionner le jeu de valeurs des propriétés des éléments When à définir. Si les attributs Condition des deux éléments When ont la valeur false, les valeurs des propriétés dans l'élément Otherwise sont définies.

<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>

Voir aussi

Référence

Constructions conditionnelles MSBuild

Concepts

Référence du schéma de fichier de projet MSBuild