When, élément (MSBuild)
Spécifie un bloc de code qui peut être sélectionné par l'élément Choose.
<When Condition="'StringA'=='StringB'">
<PropertyGroup>... </PropertyGroup>
<ItemGroup>... </ItemGroup>
<Choose>... </Choose>
</When>
Attributs et éléments
Les sections suivantes décrivent des attributs, des éléments enfants et des éléments parents.
Attributs
Attribut |
Description |
---|---|
Condition |
Attribut requis. Condition à évaluer. Pour plus d'informations, consultez Conditions MSBuild. |
Éléments enfants
Élément |
Description |
---|---|
Élément facultatif. Évalue des éléments enfants pour sélectionner une section de code à exécuter. Un élément When peut ne contenir aucun élément Choose ou en contenir plusieurs. |
|
Élément facultatif. Contient un ensemble d'éléments Item définis par l'utilisateur. Un élément When peut ne contenir aucun élément ItemGroup ou en contenir plusieurs. |
|
Élément facultatif. Contient un ensemble d'éléments Property définis par l'utilisateur. Un élément When peut contenir zéro, un ou plusieurs éléments PropertyGroup. |
Éléments parents
Élément |
Description |
---|---|
Évalue des éléments enfants pour sélectionner une section de code à exécuter. |
Notes
Si l'attribut Condition a la valeur 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.
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