Поделиться через


Элемент Otherwise (MSBuild)

Задает блок кода, который следует выполнять в том и только том случае, если результатом проверки условий всех элементов When будет false.

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

Атрибуты и элементы

В следующих разделах описаны атрибуты, дочерние элементы и родительские элементы.

Атрибуты

Отсутствует.

Дочерние элементы

Элемент

Описание

Выберите

Необязательный элемент.

Вычисляет дочерние элементы с целью выбора одного блока кода для выполнения.Элемент Otherwise может содержать любое число элементов Choose, включая ноль.

ItemGroup

Необязательный элемент.

Этот элемент содержит набор определяемых пользователем элементов Item.Элемент Otherwise может содержать любое число элементов ItemGroup, включая ноль.

PropertyGroup

Необязательный элемент.

Этот элемент содержит набор определяемых пользователем элементов Property.Элемент Otherwise может содержать любое число элементов PropertyGroup, включая ноль.

Родительские элементы

Элемент

Описание

Выберите

Вычисляет дочерние элементы с целью выбора одного блока кода для выполнения.

Заметки

Элемент Choose может содержать только один элемент Otherwise, и он должен идти последним.

Элементы Choose, When и Otherwise можно использовать совместно, чтобы обеспечить возможность выбора и выполнения одного из нескольких возможных фрагментов кода.Дополнительные сведения см. в разделе Условные конструкции MSBuild.

Пример

В приведенном ниже проекте элемент Choose используется для выбора устанавливаемого набора значений свойств в элементах When.Если атрибутам Condition обоих элементов When оказывается равным false, устанавливаются значения свойств в элементе Otherwise.

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

См. также

Ссылки

Условные конструкции MSBuild

Основные понятия

Справочные сведения о схеме файлов проектов MSBuild