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>
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour