Elemento Choose (MSBuild)
Evalúa los elementos secundarios para seleccionar un conjunto de elementos ItemGroup y/o los elementos PropertyGroup que se evaluarán.
<Choose>
<When Condition="'StringA'=='StringB'">... </When>
<Otherwise>... </Otherwise>
</Choose>
Atributos y elementos
En las secciones siguientes se describen los atributos, los elementos secundarios y los elementos primarios.
Atributos
Ninguno.
Elementos secundarios
Elemento |
Descripción |
---|---|
Elemento opcional. 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. Puede haber cero o un elemento Otherwise en un elemento Choose y debe ser el último elemento. |
|
Elemento necesario. Especifica un posible bloque de código que el elemento Choose puede seleccionar. Puede haber cero o más elementos When en un elemento Choose. |
Elementos primarios
Elemento |
Descripción |
---|---|
Especifica el bloque de código que se ejecutará si las condiciones de todos los elementos When se evalúan como false. |
|
Elemento raíz necesario de un archivo de proyecto de MSBuild. |
|
Especifica un posible bloque de código que el elemento Choose puede seleccionar. |
Comentarios
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. Para obtener más información, vea Construcciones condicionales de MSBuild.
Ejemplo
En el proyecto siguiente se utiliza el elemento Choose para seleccionar el conjunto de valores de propiedad de los elementos When que desea establecer. Si los atributos Condition de ambos elementos When se evalúan como false, se establecen los valores de la propiedad del elemento Otherwise.
<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>
Vea también
Referencia
Construcciones condicionales de MSBuild