Otherwise-Element (MSBuild)
Legt den Codeblock fest, der ausgeführt – und nur dann ausgeführt – wird, wenn die Bedingungen aller When
-Elemente als false
ausgewertet werden.
<Projekt><auswählen, wenn><Sie auswählen ... ><>< Andernfalls><wählen Sie> ...
Syntax
<Otherwise>
<PropertyGroup>... </PropertyGroup>
<ItemGroup>... </ItemGroup>
<Choose>... </Choose>
</Otherwise>
Attribute und Elemente
In den folgenden Abschnitten werden Attribute sowie untergeordnete und übergeordnete Elemente beschrieben.
Attribute
Keine
Untergeordnete Elemente
Element | Beschreibung |
---|---|
Auswählen | Optionales Element. Wertet untergeordnete Elemente aus, um einen auszuführenden Codeabschnitt auszuwählen. Es kann keine oder mehrere Choose -Elemente in einem Otherwise -Element geben. |
ItemGroup | Optionales Element. Enthält eine Reihe von benutzerdefinierten Item-Elementen. Es kann keine oder mehrere ItemGroup -Elemente in einem Otherwise -Element geben. |
PropertyGroup | Optionales Element. Enthält eine Reihe von benutzerdefinierten Eigenschaft-Elementen. Es kann keine oder mehrere PropertyGroup -Elemente in einem Otherwise -Element geben. |
Übergeordnete Elemente
Element | Beschreibung |
---|---|
Auswählen | Wertet untergeordnete Elemente aus, um einen auszuführenden Codeabschnitt auszuwählen. |
Bemerkungen
Möglicherweise gibt es nur ein Otherwise
-Element in einem Choose
-Element, und es muss das letzte Element sein.
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>