Quando o elemento (MSBuild)
Especifica um bloco possível de código para o elemento de Choose selecione.
<When Condition="'StringA'=='StringB'">
<PropertyGroup>... </PropertyGroup>
<ItemGroup>... </ItemGroup>
<Choose>... </Choose>
</When>
Atributos e elementos
As seções a seguir descrevem elementos filho, atributos, e elementos pai.
Atributos
Atributo |
Descrição |
---|---|
Condição |
Atributo necessário. condicione para avaliar.Para obter mais informações, consulte Condições do MSBuild. |
Elementos filho
Elemento |
Descrição |
---|---|
elemento opcional. Avalia os elementos filho para selecionar uma seção de código para executar.pode haver zero ou mais elementos de Choose em um elemento de When . |
|
elemento opcional. Contém um conjunto de elementos definidos pelo usuário de item .pode haver zero ou mais elementos de ItemGroup em um elemento de When . |
|
elemento opcional. Contém um conjunto de elementos definidos pelo usuário de Propriedade .pode haver zero ou mais elementos de PropertyGroup em um elemento de When . |
Elementos pai
Elemento |
Descrição |
---|---|
Avalia os elementos filho para selecionar uma seção de código para executar. |
Comentários
Se o atributo de Condition avalia como true ItemGroup , e os elementos filhos de PropertyGroup do elemento de When são executados e todos os elementos subseqüentes de When são ignorados.
Choose, When, e os elementos de Otherwise são usados em conjunto para fornecer uma maneira para selecionar uma seção de código para executar fora de um número de alternativas possíveis.Para obter mais informações, consulte Construções condicionais do MSBuild.
Exemplo
O exemplo a seguir usa o projeto elemento de Choose para selecionar que define os valores de propriedades nos elementos de When para definir.Se os atributos de Condition de ambos os elementos de When avaliada como false, os valores de propriedade no elemento de Otherwise são definidos.
<Project
xmlns="https://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>
Consulte também
Referência
Construções condicionais do MSBuild