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


Элемент Otherwise (MSBuild)

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

<Project><Choose><When><Choose> ... <Otherwise><Choose> ...

Синтаксис

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

Элементы и атрибуты

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

Атрибуты

Нет.

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

Элемент Description
Выберите Необязательный элемент.

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

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

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

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

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

Замечания

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

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

Пример

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

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

См. также