Wybierz element (MSBuild)
Ocenia elementy podrzędne, aby wybrać jeden zestaw ItemGroup
elementów i/lub PropertyGroup
elementów do obliczenia.
<Projekt>wybierany><po><wybraniu>... <<W przeciwnym razie><wybierz> pozycję ...
Element Choose
zawiera serię When
elementów z atrybutami Condition
, które są testowane w kolejności od góry do dołu, aż zostanie obliczona wartość true. Jeśli wartość true daje więcej niż jeden When
element, zostanie użyty tylko pierwszy element. Otherwise
Jeśli element jest obecny, zostanie oceniony, jeśli żaden warunek elementu When
nie zwróci wartości true.
Składnia
<Choose>
<When Condition="'StringA'=='StringB'">... </When>
<Otherwise>... </Otherwise>
</Choose>
Atrybuty i elementy
W poniższych sekcjach opisano atrybuty, elementy podrzędne i elementy nadrzędne.
Atrybuty
Brak.
Elementy podrzędne
Element | opis |
---|---|
Inaczej | Element opcjonalny. Określa blok kodu PropertyGroup i ItemGroup elementów do oceny, czy warunki wszystkich When elementów są obliczane na false wartość . Może istnieć zero lub jeden Otherwise element w elemecie Choose i musi być ostatnim elementem. |
Kiedy | Element wymagany. Określa możliwy blok kodu do wybrania Choose elementu. Element może zawierać co najmniej jeden When element Choose . |
Elementy nadrzędne
Element | opis |
---|---|
Inaczej | Określa blok kodu do wykonania, jeśli warunki wszystkich When elementów są obliczane na false wartość . |
Projekt | Wymagany element główny pliku projektu MSBuild. |
Kiedy | Określa możliwy blok kodu do wybrania Choose elementu. |
Uwagi
Choose
Elementy , When
i Otherwise
są używane razem, aby zapewnić sposób wybierania jednej sekcji kodu do wykonania z wielu możliwych alternatyw. Aby uzyskać więcej informacji, zobacz Konstrukcje warunkowe.
Przykład
Poniższy projekt używa Choose
elementu , aby wybrać zestaw wartości właściwości w elementach When
do ustawienia. Condition
Jeśli atrybuty obu When
elementów mają wartość false
, zostaną ustawione wartości właściwości w elemecie Otherwise
.
<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>