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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk