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


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

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

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