Choose-Element (MSBuild)
Bewertet untergeordnete Elemente, um einen Satz von auszuwertenden ItemGroup
-Elementen und/oder PropertyGroup
-Elementen auszuwählen.
<Projekt><auswählen, wenn><Sie auswählen ... ><>< Andernfalls><wählen Sie> ...
Das Choose
-Element enthält mehrere When
-Elemente und Condition
-Attribute, die in der Reihenfolge von oben nach unten getestet werden, bis eins den Wert „true” ergibt. Wenn mehr als ein When
-Element „true” ergibt, wird nur das erste Element verwendet. Falls ein Otherwise
-Element vorhanden ist, wird es ausgewertet, wenn keine Bedingung für ein When
-Element „true” ergibt.
Syntax
<Choose>
<When Condition="'StringA'=='StringB'">... </When>
<Otherwise>... </Otherwise>
</Choose>
Attribute und Elemente
In den folgenden Abschnitten werden Attribute sowie untergeordnete und übergeordnete Elemente beschrieben.
Attribute
Keine
Untergeordnete Elemente
Element | Beschreibung |
---|---|
Otherwise | Optionales Element. Gibt den Codeblock mit PropertyGroup - und ItemGroup -Elementen an, die ausgewertet werden sollen, wenn die Bedingungen aller When -Elemente als false ausgewertet werden. Ein Choose -Element kann kein oder ein Otherwise -Element enthalten, und es muss das letzte Element sein. |
When | Erforderliches Element. Gibt einen möglichen Codeblock an, den das Choose -Element auswählen kann. Ein Choose -Element kann ein oder mehrere When -Elemente enthalten. |
Übergeordnete Elemente
Element | Beschreibung |
---|---|
Otherwise | Gibt den Codeblock an, der ausgeführt wird, wenn die Bedingungen aller When -Elemente als false ausgewertet werden. |
Projekt | Erforderliches Stammelement einer MSBuild-Projektdatei. |
When | Gibt einen möglichen Codeblock an, den das Choose -Element auswählen kann. |
Bemerkungen
Die Elemente Choose
, When
und Otherwise
werden zusammen verwendet, um eine Möglichkeit zu bieten, einen Codeabschnitt aus einer Reihe von möglichen Alternativen zur Ausführung auszuwählen. Weitere Informationen finden Sie unter Conditional Constructs (Bedingte Konstrukte).
Beispiel
Das folgende Projekt verwendet das Choose
-Element, um auszuwählen, welche Gruppe von Eigenschaftswerten in den When
-Elementen festgelegt werden soll. Wenn die Condition
-Attribute beider When
-Elemente false
ergeben, werden die Eigenschaftswerte im Otherwise
-Element festgelegt.
<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>