共用方式為


MSBuild 條件式建構

MSBuild 會為具有 ChooseWhenOtherwise 項目的 either/or 處理提供機制。

使用 Choose 項目

Choose 項目包含一系列具有 Condition 屬性的 When 項目,並且會以由上而下的方式測驗這些項目,直到其中一個項目評估為 true。 如果不只一個 When 項目評估為 true,則只會使用第一個項目。 如果 When 項目中沒有條件評估為 true,則會評估 Otherwise 項目 (如果存在的話)。

Choose 項目可以當做 ProjectWhenOtherwise 項目的子項目使用。 WhenOtherwise 項目可以有 ItemGroupPropertyGroupChoose 子項目。

範例

下列範例會針對 either/or 處理使用 ChooseWhen 項目。 專案的屬性和項目將會根據 Configuration 屬性的值來設定。

<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>
    </Choose>
    <!-- Rest of Project -->
</Project>

請參閱

參考

Choose 項目 (MSBuild)

When 項目 (MSBuild)

Otherwise 項目 (MSBuild)

其他資源

MSBuild 參考