Otherwise 元素 (MSBuild)

指定当且仅当所有 When 元素的条件的计算结果为 false 时才执行的代码块。

<Project><Choose><When><Choose> ... <Otherwise><Choose> ...

语法

<Otherwise>
    <PropertyGroup>... </PropertyGroup>
    <ItemGroup>... </ItemGroup>
    <Choose>... </Choose>
</Otherwise>

特性和元素

下列各节描述了特性、子元素和父元素。

特性

无。

子元素

元素 说明
Choose 可选元素。

评估子元素以选择代码的一部分来执行。 Choose 元素中可能有零个或零个以上的 Otherwise 元素。
ItemGroup 可选元素。

包含一组用户定义的 Item 元素。 ItemGroup 元素中可能有零个或零个以上的 Otherwise 元素。
PropertyGroup 可选元素。

包含一组用户定义的 Property 元素。 PropertyGroup 元素中可能有零个或零个以上的 Otherwise 元素。

父元素

元素 说明
Choose 评估子元素以选择代码的一部分来执行。

备注

Choose 元素中可能只有一个 Otherwise元素,并且它必须是最后一个元素。

ChooseWhenOtherwise 元素一起用来提供一种方式,通过这种方式选择代码的一部分来执行许多种可能的替代选择。 有关详细信息,请参阅条件构造

示例

以下项目使用 Choose 元素来选择要在 When 元素中设置的属性值组。 如果两个 When 元素的 Condition 属性的计算结果均为 false,则将设置 Otherwise 元素中的属性值。

<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>

另请参阅