MSBuild の条件構造MSBuild Conditional Constructs

MSBuildMSBuild は、ChooseWhenOtherwise 要素で either/or 処理を行うためのメカニズムを提供します。provides a mechanism for either/or processing with the Choose, When, and Otherwise elements.

Choose 要素を使用するUsing the Choose Element

Choose 要素には、Condition 属性を持つ一連の When 要素が含まれます。この要素は、いずれかの評価結果が true になるまで、上から下への順序でテストされます。The Choose element contains a series of When elements with Condition attributes that are tested in order from top to bottom until one evaluates to true. 複数の When 要素が評価の結果、true になる場合、最初の要素だけが使用されます。If more than one When element evaluates to true, only the first one is used. Otherwise 要素が存在する場合、When 要素の条件がいずれも評価の結果、true にならない場合にのみ評価されます。An Otherwise element, if present, will be evaluated if no condition on a When element evaluates to true.

Choose 要素は、ProjectWhenOtherwise 要素の子要素として使用できます。Choose elements can be used as child elements of Project, When and Otherwise elements. When 要素と Otherwise 要素には、子要素として ItemGroupPropertyGroupChoose を入れることができます。When and Otherwise elements can have ItemGroup, PropertyGroup, or Choose child elements.

Example

次の例では、either/or 処理に Choose 要素と When 要素が使用されています。The following example uses the Choose and When elements for either/or processing. プロジェクトのプロパティと項目は、Configuration プロパティの値に基づいて設定されます。The properties and items for the project are set depending on the value of the Configuration property.

<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>  
    </Choose>  
    <!-- Rest of Project -->  
</Project>  

参照See Also

Choose 要素 (MSBuild) Choose Element (MSBuild)
When 要素 (MSBuild) When Element (MSBuild)
Otherwise 要素 (MSBuild) Otherwise Element (MSBuild)
MSBuild リファレンスMSBuild Reference