Share via


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 프로젝트 파일 스키마 참조