Choose 요소(MSBuild)

자식 요소를 확인하여 평가할 ItemGroup 요소 및/또는 PropertyGroup 요소의 집합 하나를 선택합니다.

<Choose>
    <When Condition="'StringA'=='StringB'">... </When>
    <Otherwise>... </Otherwise>
</Choose>

특성 및 요소

다음 단원에서는 특성, 자식 요소 및 부모 요소에 대해 설명합니다.

특성

없음

자식 요소

요소

설명

Otherwise

선택적 요소입니다.

모든 When 요소가 false로 확인되는 경우 평가할 코드 PropertyGroupItemGroup 요소의 블록을 지정합니다.Choose 요소에 Otherwise 요소가 하나 있거나 없을 수 있으며, 이 요소는 마지막 요소여야 합니다.

When

필수적 요소입니다.

Choose 요소가 선택할 수 있는 코드 블록을 지정합니다.Choose 요소에 When 요소가 한 개 이상 있을 수 있습니다.

부모 요소

요소

설명

Otherwise

모든 When 요소의 조건이 false로 확인되는 경우 실행할 코드 블록을 지정합니다.

프로젝트

MSBuild 프로젝트 파일의 필수 루트 요소입니다.

When

Choose 요소가 선택할 수 있는 코드 블록을 지정합니다.

설명

Choose, WhenOtherwise 요소는 여러 가지 가능한 경우의 수 중에서 실행할 코드 하나를 선택할 수 있도록 함께 사용됩니다.자세한 내용은 MSBuild 조건부 구문를 참조하십시오.

예제

다음 프로젝트에서는 설정할 When 요소의 속성 값 집합을 선택하기 위해 Choose 요소를 사용합니다.두 When 요소의 Condition 특성이 모두 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 프로젝트 파일 스키마 참조