Partilhar via


Quando o elemento (MSBuild)

Especifica um bloco de código para o possívelChoose elemento Selecionar.

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

Atributos e elementos

As seções a seguir descrevem atributos, elementos filho, e elementos pai.

Atributos

Atributo

Descrição

Condtition

Atributo obrigatório.

Condição para avaliar. Para obter mais informações, consulte Condições do MSBuild.

Elementos filho

Elemento

Descrição

Choose

Elemento opcional.

Avalia os elementos filho para selecionar uma seção do código seja executado. Pode haver zero ou mais Choose elementos em um When elemento.

ItemGroup

Elemento opcional.

Contém um conjunto de definidos pelo usuário Item elementos. Pode haver zero ou mais ItemGroup elementos em um When elemento.

PropertyGroup

Elemento opcional.

Contém um conjunto de definidos pelo usuário Propriedade elementos. Pode haver zero ou mais PropertyGroup elementos em um When elemento.

Elementos pai

Elemento

Descrição

escolher elemento (MSBuild)

Avalia os elementos filho para selecionar uma seção do código seja executado.

Comentários

Se o Condition atributo é avaliado como true, o filho ItemGroup e PropertyGroup elementos da When elemento são executadas e todos os subseqüentes When elementos são ignorados.

The Choose, When, e Otherwise elementos são usados juntos para fornecer uma maneira de selecionar uma seção do código seja executado fora de um número de possíveis alternativas. Para obter mais informações, consulte MSBuild construções condicional.

Exemplo

O projeto a seguir usa o Choose elemento para selecionar qual conjunto de valores de propriedade no When elementos para serem definidos. Se o Condition atributos de ambos When elementos avaliada como false, a propriedade valores na Otherwise elemento serão definidas.

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

Consulte também

Conceitos

Referência de esquema de arquivo de projeto MSBuild

Referência

MSBuild construções condicional