Otherwise 元素 (MSBuild)

更新:2007 年 11 月

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

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

属性和元素

以下几节描述了属性、子元素和父元素。

属性

无。

子元素

元素

说明

请选择

可选的元素。

通过计算子元素来选择要执行的代码块。一个 Otherwise 元素中可能有零个或零个以上的 Choose 元素。

ItemGroup

可选的元素。

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

PropertyGroup

可选的元素。

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

父元素

元素

说明

请选择

通过计算子元素来选择要执行的代码块。

备注

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

通过将 ChooseWhenOtherwise 元素结合起来使用,可以从众多备选代码块中选择一个要执行的代码块。有关更多信息,请参见 MSBuild 的条件构造

示例

下面的项目使用 Choose 元素选择 When 元素中要设置的一组属性值。如果两个 When 元素的 Condition 属性 (Attribute) 的计算结果均为 false,将会设置 Otherwise 元素中的属性 (Property) 值。

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

请参见

概念

MSBuild 项目文件架构引用

参考

MSBuild 的条件构造