Share via


MSBuild の条件構造

MSBuild には、ChooseWhenOtherwise の各要素に or 処理の機構が用意されています。

Choose 要素の使用

Choose 要素は、Condition 属性を持つ一連の When 要素で構成され、true と評価されるまで、上から下へ順番にテストされます。 複数の When 要素が true と評価される場合は、最初の要素だけが使用されます。 Otherwise 要素が存在する場合、When 要素の条件がどれも true と評価されなかった場合に、この要素が評価されます。

Choose 要素は、ProjectWhenOtherwise の各要素の子要素として使用できます。 When および Otherwise 要素には、ItemGroupPropertyGroup、または Choose 子要素を設定できます

使用例

or 処理で Choose 要素および When 要素を使用する例を次に示します。 プロジェクトのプロパティおよび項目は、Configuration プロパティの値に応じて設定されます。

<Project xmlns="https://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>

参照

関連項目

Choose 要素 (MSBuild)

When 要素 (MSBuild)

Otherwise 要素 (MSBuild)

その他の技術情報

MSBuild リファレンス