Elemento Otherwise (MSBuild)

Especifica o bloco de código a executar se e somente se as condições de todos os elementos When forem avaliadas como false.

<Projeto><Choose><When><Choose> ... <Otherwise><Choose> ...

Syntax

<Otherwise>
    <PropertyGroup>... </PropertyGroup>
    <ItemGroup>... </ItemGroup>
    <Choose>... </Choose>
</Otherwise>

Atributos e elementos

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

Atributos

Nenhum.

Elementos filho

Elemento Descrição
Choose Elemento opcional.

Avalia elementos filhos para selecionar uma seção do código para executar. Pode ser que não haja nenhum ou mais de um elemento Choose em um elemento Otherwise.
ItemGroup Elemento opcional.

Contém um conjunto de elementos Item definidos pelo usuário. Pode ser que não haja nenhum ou mais de um elemento ItemGroup em um elemento Otherwise.
PropertyGroup Elemento opcional.

Contém um conjunto de definidos elementos Property definidos pelo usuário. Pode ser que não haja nenhum ou mais de um elemento PropertyGroup em um elemento Otherwise.

Elementos pai

Elemento Descrição
Choose Avalia elementos filhos para selecionar uma seção do código para executar.

Comentários

Pode haver apenas um elemento Otherwise em um elemento Choose e ele deve ser o último elemento.

Os elementos Choose, When e Otherwise são usados juntos para fornecer uma maneira de selecionar uma seção de código para executar entre diversas possíveis alternativas. Para obter mais informações, confira Constructos condicionais.

Exemplo

O seguinte projeto usa o Choose elemento para selecionar o conjunto de valores de propriedades no elemento When a ser definido. Se os Condition atributos de ambos When elementos são avaliadas como false, os valores de propriedades no elemento Otherwise são definidos.

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

Confira também