When 요소(MSBuild)When Element (MSBuild)

Choose 요소에서 선택할 수 있는 가능한 코드 블록을 지정합니다.Specifies a possible block of code for the Choose element to select.

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

구문Syntax

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

특성 및 요소Attributes and Elements

다음 섹션에서는 특성, 자식 요소 및 부모 요소에 대해 설명합니다.The following sections describe attributes, child elements, and parent elements.

특성Attributes

특성Attribute 설명Description
조건Condition 필수 특성입니다.Required attribute.

평가할 조건입니다.Condition to evaluate. 자세한 내용은 조건을 참조하세요.For more information, see Conditions.

자식 요소Child Elements

요소Element 설명Description
ChooseChoose 선택적 요소입니다.Optional element.

자식 요소를 평가하여 실행할 코드의 한 섹션을 선택합니다.Evaluates child elements to select one section of code to execute. Choose 요소에는 When 요소가 0개 또는 그 이상 있을 수 있습니다.There may be zero or more Choose elements in a When element.
ItemGroupItemGroup 선택적 요소입니다.Optional element.

사용자 정의 Item 요소 집합을 포함합니다.Contains a set of user-defined Item elements. ItemGroup 요소에는 When 요소가 0개 또는 그 이상 있을 수 있습니다.There may be zero or more ItemGroup elements in a When element.
PropertyGroupPropertyGroup 선택적 요소입니다.Optional element.

사용자 정의 Property 요소 집합을 포함합니다.Contains a set of user-defined Property elements. PropertyGroup 요소에는 When 요소가 0개 또는 그 이상 있을 수 있습니다.There may be zero or more PropertyGroup elements in an When element.

부모 요소Parent Elements

요소Element 설명Description
Choose 요소(MSBuild)Choose Element (MSBuild) 자식 요소를 평가하여 실행할 코드의 한 섹션을 선택합니다.Evaluates child elements to select one section of code to execute.

설명Remarks

Condition 특성이 true로 평가되면 When 요소의 자식 ItemGroupPropertyGroup 요소가 실행되고 모든 후속 When 요소가 생략됩니다.If the Condition attribute evaluates to true, the child ItemGroup and PropertyGroup elements of the When element are executed and all subsequent When elements are skipped.

Choose, WhenOtherwise 요소는 몇 가지 가능한 대안 중에서 실행할 코드의 한 섹션을 선택하는 방법을 제공하기 위해 함께 사용됩니다.The Choose, When, and Otherwise elements are used together to provide a way to select one section of code to execute out of a number of possible alternatives. 자세한 내용은 조건부 구문을 참조하세요.For more information, see Conditional Constructs.

Example

다음 프로젝트에서는 Choose 요소를 사용하여 설정할 When 요소의 속성 값 집합을 선택합니다.The following project uses the Choose element to select which set of property values in the When elements to set. When 요소의 Condition 특성이 모두 false로 평가되면 Otherwise 요소의 속성 값이 설정됩니다.If the Condition attributes of both When elements evaluate to false, the property values in the Otherwise element are set.

<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>  

참고 항목See Also

조건부 구문 Conditional Constructs
프로젝트 파일 스키마 참조Project File Schema Reference