Choose – element (MSBuild)
Vyhodnotí podřízené prvky a vybere jednu sadu ItemGroup
prvků nebo PropertyGroup
prvků, které se mají vyhodnotit.
<Project>Choose When><Choose>>< ... <<Jinak><zvolte> ...
Prvek Choose
obsahuje řadu When
prvků s Condition
atributy, které jsou testovány v pořadí od shora dolů, dokud se jedna vyhodnotí jako true. Pokud se vyhodnotí jako true více než jeden When
prvek, použije se pouze první prvek. Prvek Otherwise
, pokud existuje, bude vyhodnocen, pokud není podmínka prvku When
vyhodnocena jako true.
Syntaxe
<Choose>
<When Condition="'StringA'=='StringB'">... </When>
<Otherwise>... </Otherwise>
</Choose>
Atributy a prvky
Následující části popisují atributy, podřízené prvky a nadřazené prvky.
Atributy
Žádné
Podřízené prvky
Element (Prvek) | Popis |
---|---|
Jinak | Volitelný element. Určuje blok kódu PropertyGroup a ItemGroup prvků, které se mají vyhodnotit, pokud jsou podmínky všech When prvků vyhodnoceny jako false . Prvek může obsahovat nula nebo jeden Otherwise prvek Choose a musí se jednat o poslední prvek. |
Když | Požadovaný element. Určuje možný blok kódu, který Choose má prvek vybrat. V elementu Choose může být jeden nebo více When prvků. |
Nadřazené prvky
Element (Prvek) | Popis |
---|---|
Jinak | Určuje blok kódu, který se má provést, pokud jsou podmínky všech When prvků vyhodnoceny jako false . |
Projekt | Povinný kořenový prvek souboru projektu MSBuild. |
Když | Určuje možný blok kódu, který Choose má prvek vybrat. |
Poznámky
Společně jsou Choose
použity , When
a Otherwise
elementy poskytnout způsob, jak vybrat jeden oddíl kódu provést z řady možných alternativ. Další informace naleznete v tématu Podmíněné konstrukce.
Příklad
Následující projekt používá Choose
prvek k výběru sady hodnot vlastností v elementech When
, které chcete nastavit. Pokud jsou Condition
atributy obou When
prvků vyhodnoceny jako false
, hodnoty vlastností v elementu Otherwise
jsou nastaveny.
<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>