Elemento Choose (MSBuild)Choose element (MSBuild)

Evalúa los elementos secundarios para seleccionar un conjunto de elementos ItemGroup o PropertyGroup para evaluar.Evaluates child elements to select one set of ItemGroup elements and/or PropertyGroup elements to evaluate.

<Project> <Choose> <When> <Choose> ... <Otherwise> <Choose> ...<Project> <Choose> <When> <Choose> ... <Otherwise> <Choose> ...

SintaxisSyntax

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

Atributos y elementosAttributes and elements

En las siguientes secciones se describen los atributos, los elementos secundarios y los elementos primarios.The following sections describe attributes, child elements, and parent elements.

AtributosAttributes

Ninguno.None.

Elementos secundariosChild elements

ElementoElement DescripciónDescription
OtherwiseOtherwise Elemento opcional.Optional element.

Especifica el bloque de código PropertyGroup y los elementos ItemGroup que se evaluarán si las condiciones de todos los elementos When se evalúan como false.Specifies the block of code PropertyGroup and ItemGroup elements to evaluate if the conditions of all When elements evaluate to false. Puede haber un elemento Otherwise o ninguno en un elemento Choose y debe ser el último elemento.There may be zero or one Otherwise elements in a Choose element, and it must be the last element.
WhenWhen Elemento necesario.Required element.

Especifica un posible bloque de código que el elemento Choose puede seleccionar.Specifies a possible block of code for the Choose element to select. Puede haber uno o más elementos When en un elemento Choose.There may be one or more When elements in a Choose element.

Elementos primariosParent elements

ElementoElement DescripciónDescription
OtherwiseOtherwise Especifica el bloque de código que se ejecutará si las condiciones de todos los elementos When se evalúan como false.Specifies the block of code to execute if the conditions of all When elements evaluate to false.
ProyectoProject Elemento raíz necesario de un archivo de proyecto MSBuildMSBuild .Required root element of an MSBuildMSBuild project file.
WhenWhen Especifica un posible bloque de código que el elemento Choose puede seleccionar.Specifies a possible block of code for the Choose element to select.

ComentariosRemarks

Los elementos Choose, When y Otherwise se utilizan juntos para ofrecer un modo de seleccionar una sección de código para que ejecute una serie de alternativas posibles.The Choose, When, and Otherwise elements are used together to provide a way to select one section of code to execute out of a number of possible alternatives. Para más información, consulte la sección Construcciones condicionales.For more information, see Conditional constructs.

EjemploExample

En el proyecto siguiente se utiliza el elemento Choose para seleccionar el conjunto de valores de propiedad de los elementos When que desea establecer.The following project uses the Choose element to select which set of property values in the When elements to set. Si los atributos Condition de ambos elementos When se evalúan como false, se establecen los valores de propiedad del elemento Otherwise.If the Condition attributes of both When elements evaluate to false, the property values in the Otherwise element are set.

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

Vea tambiénSee also