Construcciones condicionales de MSBuildMSBuild conditional constructs

MSBuildMSBuild proporciona un mecanismo para cualquier procesamiento con los elementos Choose, When y Otherwise. provides a mechanism for either/or processing with the Choose, When, and Otherwise elements.

Usar el elemento ChooseUse the Choose element

El elemento Choose contiene una serie de elementos When con atributos Condition que se prueban en orden de arriba abajo, hasta que uno se evalúe como true.The Choose element contains a series of When elements with Condition attributes that are tested in order from top to bottom until one evaluates to true. Si más de un elemento When se evalúa como true, se usará solo el primero.If more than one When element evaluates to true, only the first one is used. Se evaluará un elemento Otherwise, en caso de estar presente, si ninguna condición de un elemento When se evalúa como true.An Otherwise element, if present, will be evaluated if no condition on a When element evaluates to true.

Los elementos Choose se pueden usar como elementos secundarios de los elementos Project, When y Otherwise.Choose elements can be used as child elements of Project, When and Otherwise elements. Los elementos When y Otherwise pueden tener elementos secundarios ItemGroup, PropertyGroup o Choose.When and Otherwise elements can have ItemGroup, PropertyGroup, or Choose child elements.

EjemploExample

En el ejemplo siguiente se usan los elementos Choose y When para cualquier procesamiento.The following example uses the Choose and When elements for either/or processing. Las propiedades y los elementos del proyecto se establecen en función dl valor de la propiedad Configuration.The properties and items for the project are set depending on the value of the Configuration property.

<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>  
    </Choose>  
    <!-- Rest of Project -->  
</Project>  

Vea tambiénSee also

Elemento Choose (MSBuild) Choose element (MSBuild)
Elemento When (MSBuild) When element (MSBuild)
Elemento Otherwise (MSBuild) Otherwise element (MSBuild)
Referencia de MSBuildMSBuild reference