Compartilhar via


Escolher elemento (MSBuild)

Avalia os elementos filho para selecionar um conjunto de ItemGroup elementos e/ou PropertyGroup elementos para avaliar.

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

Atributos e elementos

As seções a seguir descrevem atributos, elementos filho, e elementos pai.

Atributos

Nenhum.

Elementos filho

Elemento

Descrição

Caso contrário

Elemento opcional.

Especifica o bloco de código PropertyGroup e ItemGroup elementos para avaliar se as condições de todas as When elementos avaliada como false.Pode haver zero ou um Otherwise elementos em um Choose elemento e ele devem ser o último elemento.

Quando

Elemento necessário.

Especifica um possível bloco de código para o Choose elemento para selecionar.Pode haver um ou mais When elementos em um Choose elemento.

Elementos pai

Elemento

Descrição

Caso contrário

Especifica o bloco de código será executado se as condições de todas as When elementos avaliada como false.

Project

Elemento raiz necessários de um MSBuild arquivo de projeto.

Quando

Especifica um possível bloco de código para o Choose elemento para selecionar.

Comentários

O Choose, When, e Otherwise elementos são usados juntos para fornecer uma maneira para selecionar uma seção do código seja executado fora de um número de possíveis alternativas.Para obter mais informações, consulte Construções condicionais do MSBuild.

Exemplo

A seguir o project usa a Choose elemento para selecionar qual conjunto de valores de propriedade no When elementos para definir.Se o Condition atributos de ambos When elementos avaliada como false, a propriedade valores a Otherwise elemento são definidas.

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

Consulte também

Referência

Construções condicionais do MSBuild

Conceitos

Referência de esquema do arquivo de projeto MSBuild