Bagikan melalui


Memilih elemen (MSBuild)

Mengevaluasi elemen turunan untuk memilih salah satu set elemen ItemGroup dan/atau elemen PropertyGroup untuk dievaluasi.

<Proyek><Pilih><When><Pilih> ... <Atau><Pilih> ...

Elemen Choose berisi serangkaian When elemen dengan Condition atribut yang diuji secara berurutan dari atas ke bawah sampai satu mengevaluasi ke true. Jika lebih dari satu When elemen mengevaluasi ke true, hanya elemen pertama yang digunakan. Elemen Otherwise , jika ada, akan dievaluasi jika tidak ada kondisi pada elemen yang When dievaluasi ke true.

Sintaks

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

Atribut dan elemen

Bagian berikut menjelaskan atribut, elemen turunan, dan elemen induk.

Atribut

Tidak ada.

Elemen anak

Elemen Deskripsi
Otherwise Elemen opsional.

Tentukan blok kode PropertyGroup dan elemen ItemGroup untuk dievaluasi jika kondisi semua elemen When dievaluasi ke false. Mungkin ada nol atau satu elemen Otherwise dalam elemen Choose, dan elemen itu harus menjadi elemen terakhir.
Kapan Elemen yang diperlukan.

Menentukan kemungkinan blok kode untuk elemen Choose yang akan dipilih. Mungkin ada satu atau beberapa elemen When dalam elemen Choose.

Elemen induk

Elemen Deskripsi
Otherwise Tentukan blok kode untuk dijalankan jika kondisi semua elemen When dievaluasi ke false.
Project Elemen akar yang diperlukan dari file proyek MSBuild.
Kapan Menentukan kemungkinan blok kode untuk elemen Choose yang akan dipilih.

Keterangan

Elemen Choose, When, dan Otherwise digunakan bersama-sama untuk menyediakan cara untuk memilih satu bagian kode untuk dijalankan dari sejumlah alternatif yang mungkin. Untuk informasi selengkapnya, lihat Konstruksi kondisional.

Contoh

Proyek berikut menggunakan elemen Choose untuk memilih kumpulan nilai properti mana dalam elemen When yang akan ditetapkan. Jika atribut Condition dari kedua elemen When dievaluasi menjadi false, nilai properti di elemen Otherwise ditetapkan.

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

Baca juga