Choose öğesi (MSBuild)

Değerlendirilecek bir öğe kümesini ve/veya PropertyGroup öğe kümesini ItemGroup seçmek için alt öğeleri değerlendirir.

<Proje><Seçimi><Ne Zaman><Seç> ... <Aksi takdirde><.> ..

öğesi, Choose yukarıdan When aşağıya doğru olarak değerlendirilene kadar yukarıdan aşağıya doğru test edilen özniteliklere sahip Condition bir dizi öğe içerir. Birden When fazla öğe true olarak değerlendirilirse, yalnızca ilk öğe kullanılır. Bir Otherwise öğe, varsa, bir When öğedeki hiçbir koşul true olarak değerlendirilirse değerlendirilir.

Sözdizimi

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

Öznitelikler ve öğeler

Öznitelikler, alt ve üst öğeler aşağıdaki bölümlerde açıklanmaktadır.

Öznitelikler

Yok.

Alt öğeleri

Öğe Tanım
Aksi takdir -de İsteğe bağlı öğe.

Tüm When öğelerin koşullarının olarak değerlendirilip değerlendirilmediğini değerlendirmek için kod PropertyGroup ve ItemGroup öğe bloğunu falsebelirtir. Bir öğede sıfır veya bir OtherwiseChoose öğe olabilir ve son öğe olmalıdır.
Ne zaman Gerekli öğe.

Öğesinin seçecek olası bir kod bloğunu Choose belirtir. Bir öğede bir Choose veya daha fazla When öğe olabilir.

Üst öğeler

Öğe Tanım
Aksi takdir -de Tüm When öğelerin koşulları olarak değerlendirilirse yürütülecek kod bloğunu falsebelirtir.
Proje MSBuild proje dosyasının gerekli kök öğesi.
Ne zaman Öğesinin seçecek olası bir kod bloğunu Choose belirtir.

Açıklamalar

Choose, Whenve Otherwise öğeleri, bir dizi olası alternatifi yürütmek üzere kodun bir bölümünü seçmenin bir yolunu sağlamak için birlikte kullanılır. Daha fazla bilgi için bkz . Koşullu yapılar.

Örnek

Aşağıdaki proje, öğelerinde ChooseWhen ayarlanacağı özellik değerleri kümesini seçmek için öğesini kullanır. Condition Her iki When öğenin öznitelikleri olarak değerlendirilirsefalse, öğesindeki Otherwise özellik değerleri ayarlanır.

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

Ayrıca bkz.