Choose, élément (MSBuild)
Évalue des éléments enfants pour sélectionner un ensemble d’éléments ItemGroup
et/ou d’éléments PropertyGroup
à évaluer.
<Projet><Choisir><Quand><Choisir> ... <Autrement><Choisir> ...
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 soit trouvé « true ». Si plusieurs éléments When
ont la valeur « true », seul le premier est utilisé. Si un élément Otherwise
est présent, il est évalué si aucune condition d’un élément When
n’a la valeur « true ».
Syntaxe
<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
Aucune.
Éléments enfants
Élément | Description |
---|---|
Otherwise | Élément facultatif. Spécifie le bloc de code PropertyGroup et les éléments ItemGroup à exécuter si les conditions de tous les éléments When correspondent à la valeur false . Un élément Choose peut ne contenir aucun élément Otherwise ou en contenir un seul qui doit figurer en dernière position. |
Quand | Élément requis. Spécifie un bloc de code que l’élément Choose peut sélectionner. 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 correspondent à la valeur false . |
Projet | Élément racine requis d’un fichier projet MSBuild. |
Quand | Spécifie un bloc de code que l’élément Choose peut sélectionner. |
Remarques
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. Pour plus d’informations, consultez Constructions conditionnelles.
Exemple
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
. 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.
<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>