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


Элемент Otherwise (MSBuild)

Обновлен: Ноябрь 2007

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

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

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

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

Атрибуты

Нет.

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

Элемент

Описание

Choose

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

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

ItemGroup

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

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

PropertyGroup

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

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

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

Элемент

Описание

Choose

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

Заметки

Элемент 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