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 false belirtir. Bir öğede sıfır veya bir Otherwise Choose öğ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 false belirtir. |
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
, When
ve 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 Choose
When
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.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin