Choose – element (MSBuild)

Vyhodnotí podřízené prvky a vybere jednu sadu ItemGroup prvků nebo PropertyGroup prvků, které se mají vyhodnotit.

<Project>Choose When><Choose>>< ... <<Jinak><zvolte> ...

Prvek Choose obsahuje řadu When prvků s Condition atributy, které jsou testovány v pořadí od shora dolů, dokud se jedna vyhodnotí jako true. Pokud se vyhodnotí jako true více než jeden When prvek, použije se pouze první prvek. Prvek Otherwise , pokud existuje, bude vyhodnocen, pokud není podmínka prvku When vyhodnocena jako true.

Syntaxe

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

Atributy a prvky

Následující části popisují atributy, podřízené prvky a nadřazené prvky.

Atributy

Žádné

Podřízené prvky

Element (Prvek) Popis
Jinak Volitelný element.

Určuje blok kódu PropertyGroup a ItemGroup prvků, které se mají vyhodnotit, pokud jsou podmínky všech When prvků vyhodnoceny jako false. Prvek může obsahovat nula nebo jeden Otherwise prvek Choose a musí se jednat o poslední prvek.
Když Požadovaný element.

Určuje možný blok kódu, který Choose má prvek vybrat. V elementu Choose může být jeden nebo více When prvků.

Nadřazené prvky

Element (Prvek) Popis
Jinak Určuje blok kódu, který se má provést, pokud jsou podmínky všech When prvků vyhodnoceny jako false.
Projekt Povinný kořenový prvek souboru projektu MSBuild.
Když Určuje možný blok kódu, který Choose má prvek vybrat.

Poznámky

Společně jsou Choosepoužity , Whena Otherwise elementy poskytnout způsob, jak vybrat jeden oddíl kódu provést z řady možných alternativ. Další informace naleznete v tématu Podmíněné konstrukce.

Příklad

Následující projekt používá Choose prvek k výběru sady hodnot vlastností v elementech When , které chcete nastavit. Pokud jsou Condition atributy obou When prvků vyhodnoceny jako false, hodnoty vlastností v elementu Otherwise jsou nastaveny.

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

Viz také