Choose 요소(MSBuild)

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

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

구문

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

특성 및 요소

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

특성

없음

자식 요소

요소 설명
Otherwise 선택적 요소입니다.

모든 When 요소의 조건이 false로 평가될 경우 평가할 코드 PropertyGroupItemGroup 요소의 블록을 지정합니다. Choose 요소에 0개 이상의 Otherwise 요소가 있을 수 있으며 마지막 요소여야 합니다.
When 필수적 요소입니다.

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

부모 요소

요소 설명
Otherwise 모든 When 요소가 false로 평가될 경우 실행할 코드 블록을 지정합니다.
Project MSBuild 프로젝트 파일의 필수 루트 요소입니다.
When Choose 요소에서 선택할 수 있는 가능한 코드 블록을 지정합니다.

설명

Choose, WhenOtherwise 요소는 몇 가지 가능한 대안 중에서 실행할 코드의 한 섹션을 선택하는 방법을 제공하기 위해 함께 사용됩니다. 자세한 내용은 조건부 구문을 참조하세요.

예제

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

참고 항목

조건부 구문
프로젝트 파일 스키마 참조