Choose 요소(MSBuild)

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

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

요소에는 Choose 위에서 아래로 순서대로 테스트된 특성이 있는 일련의 When 요소가 Condition 포함되어 있습니다. 둘 When 이상의 요소가 true로 평가되면 첫 번째 요소만 사용됩니다. 요소의 Otherwise 조건이 When true로 평가되지 않으면 요소가 평가됩니다.

구문

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

특성 및 요소

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

특성

없음

자식 요소

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

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

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

부모 요소

요소 설명
Otherwise 모든 When 요소가 false로 평가될 경우 실행할 코드 블록을 지정합니다.
프로젝트 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>

참고 항목