When, élément (MSBuild)When element (MSBuild)

Spécifie un bloc de code que l’élément Choose peut sélectionner.Specifies a possible block of code for the Choose element to select.

<Project><Project>
<Choose><Choose>
<When><When>
<Choose><Choose>
......
<Otherwise><Otherwise>
<Choose><Choose>
......

SyntaxeSyntax

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

Attributs et élémentsAttributes and elements

Les sections suivantes décrivent des attributs, des éléments enfants et des éléments parents.The following sections describe attributes, child elements, and parent elements.

AttributsAttributes

AttributAttribute DescriptionDescription
ConditionCondition Attribut requis.Required attribute.

Condition à évaluer.Condition to evaluate. Pour plus d’informations, consultez l’article Conditions (Conditions MSBuild).For more information, see Conditions.

Éléments enfantsChild elements

ÉlémentElement DescriptionDescription
ChooseChoose Élément facultatif.Optional element.

Évalue les éléments enfants pour sélectionner une section de code à exécuter.Evaluates child elements to select one section of code to execute. Un élément Choose peut ne contenir aucun élément When ou en contenir plusieurs.There may be zero or more Choose elements in a When element.
ItemGroupItemGroup Élément facultatif.Optional element.

Contient un ensemble d’éléments Item définis par l’utilisateur.Contains a set of user-defined Item elements. Un élément ItemGroup peut ne contenir aucun élément When ou en contenir plusieurs.There may be zero or more ItemGroup elements in a When element.
PropertyGroupPropertyGroup Élément facultatif.Optional element.

Contient un ensemble d’éléments Property définis par l’utilisateur.Contains a set of user-defined Property elements. Un élément When peut ne contenir aucun élément PropertyGroup ou en contenir plusieurs.There may be zero or more PropertyGroup elements in an When element.

Éléments parentsParent elements

ÉlémentElement DescriptionDescription
Choose, élément (MSBuild)Choose element (MSBuild) Évalue les éléments enfants pour sélectionner une section de code à exécuter.Evaluates child elements to select one section of code to execute.

NotesRemarks

Si l’attribut Condition s’évalue à true, les éléments ItemGroup et PropertyGroup enfants de l’élément When sont exécutés et tous les éléments When suivants sont ignorés.If the Condition attribute evaluates to true, the child ItemGroup and PropertyGroup elements of the When element are executed and all subsequent When elements are skipped.

Les éléments Choose, When et Otherwise sont utilisés ensemble pour permettre la sélection d’une section de code spécifique à exécuter parmi plusieurs options possibles.The Choose, When, and Otherwise elements are used together to provide a way to select one section of code to execute out of a number of possible alternatives. Pour plus d’informations, consultez Constructions conditionnelles.For more information, see Conditional constructs.

ExempleExample

Le projet suivant utilise l’élément Choose pour sélectionner l’ensemble de valeurs de propriété à définir dans les éléments When.The following project uses the Choose element to select which set of property values in the When elements to set. Si les attributs Condition des deux éléments When s’évaluent à false, les valeurs des propriétés dans l’élément Otherwise sont définies.If the Condition attributes of both When elements evaluate to false, the property values in the Otherwise element are set.

<Project  
    xmlns="http://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 aussiSee also

Constructions conditionnelles Conditional constructs
Informations de référence sur le schéma de fichier projetProject file schema reference