共用方式為


Otherwise 項目 (MSBuild)

指定只有在所有 When 項目的條件都評估為 false 時,才會執行的程式碼區塊。

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

屬性和項目

下列章節會說明屬性、子項目和父項目。

屬性

無。

子項目

項目

描述

Choose

選擇性項目。

評估子項目,選取要執行的其中一個程式碼區段。 Otherwise 項目中可能有零或多個 Choose 項目。

ItemGroup

選擇性項目。

包含一組使用者定義的 Item 項目。 Otherwise 項目中可能有零或多個 ItemGroup 項目。

PropertyGroup

選擇性項目。

包含一組使用者定義的 Property 項目。 Otherwise 項目中可能有零或多個 PropertyGroup 項目。

父項目

項目

描述

Choose

評估子項目,選取要執行的其中一個程式碼區段。

備註

Choose 項目中只能有一個 Otherwise 項目,而且此項目必須是最後的項目。

ChooseWhenOtherwise 項目會一起使用,以便從數個可能的選擇項目中,選取一個要執行的程式碼區段。 如需詳細資訊,請參閱 MSBuild 條件式建構

範例

下列專案使用 Choose 項目,選取 When 項目中要設定的屬性值集。 如果兩個 When 項目的 Condition 屬性 (Aattribute) 都評估為 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 專案檔案結構描述參考