Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
MSBuild menyediakan mekanisme untuk salah satu/atau pemrosesan dengan elemen Pilih, Kapan, dan Sebaliknya.
Menggunakan elemen Pilih
Elemen Choose berisi serangkaian When elemen dengan Condition atribut yang diuji secara berurutan dari atas ke bawah hingga dievaluasi ke true. Jika lebih dari satu When elemen dievaluasi ke true, hanya elemen pertama yang digunakan. Elemen Otherwise , jika ada, dievaluasi jika tidak ada kondisi pada elemen yang When dievaluasi ke true.
Elemen Choose dapat digunakan sebagai elemen turunan dari elemen Project, When dan Otherwise. Elemen When dan Otherwise dapat memiliki elemen ItemGroup, PropertyGroup, atau Choose turunan.
Contoh
Contoh berikut menggunakan elemen Choose dan When untuk pemrosesan either/or. Properti dan item untuk proyek diatur tergantung pada nilai properti Configuration.
<Project>
<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>
Dalam contoh ini, kondisi pada konstanta DEFINED_CONSTANT pengkompilasi digunakan. Definisi ini disertakan DefineConstants dalam properti . Ekspresi reguler digunakan untuk mencocokkan konstanta yang tepat dalam daftar yang dipisahkan titik koma.
<Choose>
<When Condition="$([System.Text.RegularExpressions.Regex]::IsMatch(
$(DefineConstants), '^(.*;)*DEFINED_CONSTANT(;.*)*$'))">
<!-- When DEFINED_CONSTANT is defined. -->
</When>
<!-- other conditions -->
</Choose>