Constructions conditionnelles MSBuildMSBuild conditional constructs

MSBuildMSBuild fournit un mécanisme de traitement de type « soit/soit » avec les éléments Choose, When et Otherwise. provides a mechanism for either/or processing with the Choose, When, and Otherwise elements.

Utiliser l’élément ChooseUse the Choose element

L’élément Choose contient une série d’éléments When avec des attributs Condition qui sont testés du haut vers le bas, jusqu’à ce qu’un élément avec la valeur true soit trouvé.The Choose element contains a series of When elements with Condition attributes that are tested in order from top to bottom until one evaluates to true. Si plusieurs éléments When ont la valeur true, seul le premier est utilisé.If more than one When element evaluates to true, only the first one is used. Un élément Otherwise (si présent) est évalué si aucune condition d’un élément When n’a la valeur true.An Otherwise element, if present, will be evaluated if no condition on a When element evaluates to true.

Les éléments Choose peuvent être utilisés comme des éléments enfants des éléments Project, When et Otherwise.Choose elements can be used as child elements of Project, When and Otherwise elements. Les éléments When et Otherwise peuvent avoir des éléments enfants ItemGroup, PropertyGroup ou Choose.When and Otherwise elements can have ItemGroup, PropertyGroup, or Choose child elements.

ExempleExample

L’exemple suivant utilise les éléments Choose et When pour un traitement de type « soit/soit ».The following example uses the Choose and When elements for either/or processing. Les propriétés et les éléments du projet sont définis en fonction de la valeur de la propriété Configuration.The properties and items for the project are set depending on the value of the Configuration property.

<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>  
    </Choose>  
    <!-- Rest of Project -->  
</Project>  

Voir aussiSee also

Choose, élément (MSBuild) Choose element (MSBuild)
When, élément (MSBuild) When element (MSBuild)
Otherwise, élément (MSBuild) Otherwise element (MSBuild)
Informations de référence sur MSBuildMSBuild reference