Share via


Constructos condicionais do MSBuild

MSBuildFornece um mecanismo para um / ou processamento com o Escolha, quando, e caso contrário elementos.

Usando o elemento de escolha

O Choose elemento contém uma série de When elementos com Condition atributos que são testados em ordem de cima para baixo até ser avaliada como um true. Se mais de um When elemento é avaliada como true, apenas a primeira é usada. Um Otherwise elemento, se presente, será avaliado se nenhuma condição em uma When elemento é avaliada como true.

Chooseelementos podem ser usados como elementos filhos do Project, When e Otherwise elementos. Whene Otherwise elementos podem ter ItemGroup, PropertyGroup, ou Choose elementos filho.

Exemplo

O exemplo a seguir usa a Choose e When elementos para um / ou processamento. As propriedades e os itens do projeto são definidas, dependendo do valor da Configuration propriedade.

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

Consulte também

Referência

Elemento Choose (MSBuild)

Elemento When (MSBuild)

Elemento Otherwise (MSBuild)

Outros recursos

Referência do MSBuild