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


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

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

Использование элемента Choose

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

Элементы Choose можно использовать в качестве дочерних элементов для элементов Project, When и Otherwise.Элементы When и Otherwise могут иметь дочерние элементы ItemGroup, PropertyGroup или Choose.

Пример

В следующем примере элементы Choose и When используются для обработки ситуации выбора.Свойства и элементы для данного проекта устанавливаются в зависимости от значения свойства Configuration.

<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>
    </Choose>
    <!-- Rest of Project -->
</Project>

См. также

Ссылки

Элемент Choose (MSBuild)

Элемент When (MSBuild)

Элемент Otherwise (MSBuild)

Другие ресурсы

Справочные сведения о MSBuild