Choose, élément (MSBuild)
É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 |
---|---|
É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. |
|
É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 |
---|---|
Spécifie le bloc de code à exécuter si les conditions de tous les éléments When ont la valeur false. |
|
Élément racine requis d'un fichier projet MSBuild. |
|
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 permettre la sélection d'une section de code spécifique à 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 des propriétés des éléments When à définir. Si les attributs Condition des deux éléments When ont la valeur false, les valeurs des 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
Référence
Constructions conditionnelles MSBuild