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.

子要素を評価して、実行するコードのセクションを 1 つ選びます。Evaluates child elements to select one section of code to execute. Choose 要素に 0 個以上の When 要素があります。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 要素に 0 個以上の When 要素があります。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 要素に 0 個以上の When 要素があります。There may be zero or more PropertyGroup elements in an When element.

親要素Parent Elements

要素Element 説明Description
Choose 要素 [MSBuild]Choose Element (MSBuild) 子要素を評価して、実行するコードのセクションを 1 つ選びます。Evaluates child elements to select one section of code to execute.

コメントRemarks

Condition 属性が true と評価された場合、その When 要素の子の ItemGroup 要素と PropertyGroup 要素が実行されて、後続の 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.

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