Udostępnij za pośrednictwem


Wybierz element (MSBuild)

Ocenia elementy podrzędne, aby wybrać jeden zestaw ItemGroup elementów i/lub PropertyGroup elementów do obliczenia.

<Projekt>wybierany><po><wybraniu>... <<W przeciwnym razie><wybierz> pozycję ...

Element Choose zawiera serię When elementów z atrybutami Condition , które są testowane w kolejności od góry do dołu, aż zostanie obliczona wartość true. Jeśli wartość true daje więcej niż jeden When element, zostanie użyty tylko pierwszy element. Otherwise Jeśli element jest obecny, zostanie oceniony, jeśli żaden warunek elementu When nie zwróci wartości true.

Składnia

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

Atrybuty i elementy

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

Atrybuty

Brak.

Elementy podrzędne

Element opis
Inaczej Element opcjonalny.

Określa blok kodu PropertyGroup i ItemGroup elementów do oceny, czy warunki wszystkich When elementów są obliczane na falsewartość . Może istnieć zero lub jeden Otherwise element w elemecie Choose i musi być ostatnim elementem.
Kiedy Element wymagany.

Określa możliwy blok kodu do wybrania Choose elementu. Element może zawierać co najmniej jeden When element Choose .

Elementy nadrzędne

Element opis
Inaczej Określa blok kodu do wykonania, jeśli warunki wszystkich When elementów są obliczane na falsewartość .
Projekt Wymagany element główny pliku projektu MSBuild.
Kiedy Określa możliwy blok kodu do wybrania Choose elementu.

Uwagi

ChooseElementy , Wheni Otherwise są używane razem, aby zapewnić sposób wybierania jednej sekcji kodu do wykonania z wielu możliwych alternatyw. Aby uzyskać więcej informacji, zobacz Konstrukcje warunkowe.

Przykład

Poniższy projekt używa Choose elementu , aby wybrać zestaw wartości właściwości w elementach When do ustawienia. Condition Jeśli atrybuty obu When elementów mają wartość false, zostaną ustawione wartości właściwości w elemecie 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>

Zobacz też