Udostępnij za pośrednictwem


Choose — Element (MSBuild)

Wynikiem elementy potomne, aby zaznaczyć jeden zestaw ItemGroup elementów i/lub PropertyGroup elementów podlegających ocenie.

<Choose>
    <When Condition="'StringA'=='StringB'">... </When>
    <Otherwise>... </Otherwise>
</Choose>

Atrybuty i elementy

W poniższych sekcjach opisano atrybuty i elementy podrzędne elementy nadrzędne.

Atrybuty

Brak.

Elementy podrzędne

Element

Opis

W przeciwnym razie

Opcjonalnego elementu.

Określa blok kodu PropertyGroup i ItemGroup elementów podlegających ocenie, jeśli wszystkie warunki When elementy oceny do false.Może istnieć zero lub jeden Otherwise elementów w Choose element, a musi być ostatnim elementem.

Kiedy

Wymaganego elementu.

Określa możliwe blok kodu dla Choose element, aby zaznaczyć.Może istnieć jeden lub więcej When elementów w Choose element.

Elementy nadrzędne

Element

Opis

W przeciwnym razie

Określa blok kodu do wykonania, jeśli wszystkie warunki When elementy oceny do false.

Projekt

Element główny wymagane MSBuild pliku projektu.

Kiedy

Określa możliwe blok kodu dla Choose element, aby zaznaczyć.

Uwagi

Choose, When, I Otherwise elementy są używane razem w sposób, aby wybrać jedną sekcję kodu do wykonania z liczby możliwych alternatyw.Aby uzyskać więcej informacji, zobacz Konstrukcje warunkowe MSBuild.

Przykład

Następujące projektu zastosowań Choose element, aby wybrać który zestaw wartości właściwości w When elementów, aby ustawić.Jeśli Condition zarówno atrybuty When elementy oceny do false, wartości właściwości w Otherwise elementu są ustawione.

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

Zobacz też

Informacje

Konstrukcje warunkowe MSBuild

Koncepcje

Odwołanie do schematu pliku projektu MSBuild