Choose, élément (MSBuild)

Mise à jour : novembre 2007

É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

Otherwise

É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

Otherwise

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

Project

É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 de propriétés des éléments When à définir. Si les attributs Condition des deux éléments When ont la valeur false, les valeurs de 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

Concepts

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

Référence

Constructions conditionnelles MSBuild