Choose 要素 (MSBuild)Choose Element (MSBuild)

子要素を評価して、ItemGroup 要素および/または PropertyGroup 要素の 1 つのセットを評価対象に選択します。Evaluates child elements to select one set of ItemGroup elements and/or PropertyGroup elements to evaluate.

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

構文Syntax

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

属性および要素Attributes and Elements

以降のセクションでは、属性、子要素、および親要素について説明します。The following sections describe attributes, child elements, and parent elements.

属性Attributes

なし。None.

子要素Child Elements

要素Element 説明Description
OtherwiseOtherwise 省略可能な要素です。Optional element.

すべての When 要素の条件が false と評価された場合に評価される PropertyGroup コードと ItemGroup 要素のブロックを指定します。Specifies the block of code PropertyGroup and ItemGroup elements to evaluate if the conditions of all When elements evaluate to false. Choose 要素内で、最後の要素として、0 個または 1 個の Otherwise 要素を指定できます。There may be zero or one Otherwise elements in a Choose element, and it must be the last element.
WhenWhen 必須の要素です。Required element.

Choose 要素で選ぶ対象のコード ブロックを指定します。Specifies a possible block of code for the Choose element to select. Choose 要素内で 1 個以上の When 要素を指定できます。There may be one or more When elements in a Choose element.

親要素Parent Elements

要素Element 説明Description
OtherwiseOtherwise すべての When 要素の条件が false と評価された場合に実行するコードのブロックを指定します。Specifies the block of code to execute if the conditions of all When elements evaluate to false.
ProjectProject MSBuildMSBuild プロジェクト ファイルの必須のルート要素です。Required root element of an MSBuildMSBuild project file.
WhenWhen Choose 要素で選ぶ対象のコード ブロックを指定します。Specifies a possible block of code for the Choose element to select.

コメントRemarks

ChooseWhenOtherwise 要素を組み合わせて使って、実行される可能性のある複数のコード セクションから 1 つを選びます。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