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>

Weitere Informationen