Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Öğesinin seçecek olası bir kod bloğunu Choose belirtir.
<Proje><Seçimi><Ne Zaman><Seç> ... <Aksi takdirde><.> ..
Sözdizimi
<When Condition="'StringA'=='StringB'">
<PropertyGroup>... </PropertyGroup>
<ItemGroup>... </ItemGroup>
<Choose>... </Choose>
</When>
Öznitelikler ve öğeler
Öznitelikler, alt ve üst öğeler aşağıdaki bölümlerde açıklanmaktadır.
Özellikler
| Öznitelik | Açıklama |
|---|---|
| Koşul | Gerekli öznitelik. Değerlendirilecek koşul. Daha fazla bilgi için bkz . Koşullar. |
Alt öğeleri
| Öğe | Açıklama |
|---|---|
| Seçin | İsteğe bağlı öğe. Yürütülecek kodun bir bölümünü seçmek için alt öğeleri değerlendirir. Bir When öğede sıfır veya daha fazla Choose öğe olabilir. |
| Itemgroup | İsteğe bağlı öğe. Kullanıcı tanımlı Öğe öğeleri kümesi içerir. Bir When öğede sıfır veya daha fazla ItemGroup öğe olabilir. |
| Propertygroup | İsteğe bağlı öğe. Kullanıcı tanımlı Özellik öğeleri kümesi içerir. Bir When öğede sıfır veya daha fazla PropertyGroup öğe olabilir. |
Üst öğeler
| Öğe | Açıklama |
|---|---|
| Choose öğesi (MSBuild) | Yürütülecek kodun bir bölümünü seçmek için alt öğeleri değerlendirir. |
Açıklamalar
Özniteliği true Condition olarak değerlendirilirse, alt ItemGroup öğe ve PropertyGroup öğesinin When öğeleri yürütülür ve sonraki When tüm öğeler atlanır.
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 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. Örneği çalıştırırken, komut satırından msbuild myproj.proj -p:Configuration=Test;Platform=x86gibi çeşitli özellik ayarlarını geçirmeyi deneyin ve çıkış yolunun nasıl göründüğüne bakın. Örnekte, hata ayıklama ve sürüm derlemeleri için gerçek platform adı yerine platformun bitliğine göre çıkış klasörü de dahil olmak üzere belirli özelliklerin ayarlanması ve 'Test' ve 'Perakende' yapılandırmalarının desteklenip 'Perakende' olarak 'Yayın' olarak ele alındığı varsayılır.
<Project>
<PropertyGroup>
<Configuration Condition="$(Configuration) == ''">Debug</Configuration>
<Platform Condition="$(Platform) == ''">x64</Platform>
</PropertyGroup>
<Choose>
<When Condition="$(Configuration)=='Test'">
<PropertyGroup>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<DefineConstants>DEBUG;TRACE</DefineConstants>
</PropertyGroup>
<Choose>
<When Condition="$(Platform)=='x86' Or $(Platform) == 'ARM32'">
<PropertyGroup>
<OutputPath>.\bin\Test\32-bit\</OutputPath>
</PropertyGroup>
</When>
<When Condition="$(Platform)=='x64' Or $(Platform) == 'ARM64'">
<PropertyGroup>
<OutputPath>.\bin\Test\64-bit\</OutputPath>
</PropertyGroup>
</When>
<!-- For any other platform, use the platform name -->
<Otherwise>
<PropertyGroup>
<OutputPath>.\bin\Test\$(Platform)\</OutputPath>
</PropertyGroup>
</Otherwise>
</Choose>
</When>
<When Condition="$(Configuration)=='Retail' Or $(Configuration)=='Release'">
<PropertyGroup>
<DebugSymbols>false</DebugSymbols>
<Optimize>true</Optimize>
<DefineConstants>TRACE</DefineConstants>
</PropertyGroup>
<Choose>
<When Condition="$(Platform)=='x86' Or $(Platform) == 'ARM32'">
<PropertyGroup>
<OutputPath>.\bin\Release\32-bit\</OutputPath>
</PropertyGroup>
</When>
<When Condition="$(Platform)=='x64' Or $(Platform) == 'ARM64'">
<PropertyGroup>
<OutputPath>.\bin\Release\64-bit\</OutputPath>
</PropertyGroup>
</When>
<!-- For any other platform, use the platform name -->
<Otherwise>
<PropertyGroup>
<OutputPath>.\bin\Release\$(Platform)\</OutputPath>
</PropertyGroup>
</Otherwise>
</Choose>
</When>
<!-- For any other configuration, use debug properties-->
<Otherwise>
<PropertyGroup>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<DefineConstants>DEBUG;TRACE</DefineConstants>
</PropertyGroup>
<Choose>
<When Condition="$(Platform)=='x86' Or $(Platform)=='ARM32'">
<PropertyGroup>
<OutputPath>.\bin\$(Configuration)\32-bit\</OutputPath>
</PropertyGroup>
</When>
<When Condition="$(Platform)=='x64' Or $(Platform)=='ARM64'">
<PropertyGroup>
<OutputPath>.\bin\$(Configuration)\64-bit\</OutputPath>
</PropertyGroup>
</When>
</Choose>
</Otherwise>
</Choose>
<Target Name="ShowProperties">
<Message Text="DebugSymbols: $(DebugSymbols)"/>
<Message Text="Optimize: $(Optimize)"/>
<Message Text="DefineConstants: $(DefineConstants)"/>
<Message Text="OutputPath: $(OutputPath)"/>
</Target>
</Project>