Compartilhar via


Construções 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é que avalia um true. Se mais de um When elemento é avaliada como true, somente o primeiro será usado. Um Otherwise elemento, se presente, será avaliado se nenhuma condição em uma When elemento é avaliada como true.

Chooseelementos podem ser usados como elementos filho 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

Escolher elemento (MSBuild)

Quando o elemento (MSBuild)

Elemento de outra forma (MSBuild)

Outros recursos

Referência do MSBuild