Quando o elemento (MSBuild)
Especifica um bloco possível de código para o Choose elemento selecione.
<When Condition="'StringA'=='StringB'">
<PropertyGroup>... </PropertyGroup>
<ItemGroup>... </ItemGroup>
<Choose>... </Choose>
</When>
Atributos e elementos
As seções a seguir descrevem atributos, elementos filho, e elementos pai.
Atributos
Atributo |
Descrição |
---|---|
Condtition |
Atributo obrigatório. Condição de 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 será executado. Pode haver zero ou mais Choose elementos em um When elemento. |
|
Elemento opcional. Contém um conjunto de definido pelo usuário Item elementos. Pode haver zero ou mais ItemGroup elementos em um When elemento. |
|
Elemento opcional. Contém um conjunto de definido pelo usuário propriedade elementos. Pode haver zero ou mais PropertyGroup elementos em um When elemento. |
Elementos pai
Elemento |
Descrição |
---|---|
Avalia os elementos filho para selecionar uma seção de código será executado. |
Comentários
Se o Condition atributo for avaliada como true, o filho ItemGroup e PropertyGroup elementos da When elemento são executadas e todas as demais When elementos serão ignorados.
O Choose, When, e Otherwise elementos são usados juntos para fornecer uma maneira para selecionar uma seção do código seja executado fora de um número de possíveis alternativas. Para obter mais informações, consulte Construções condicionais do MSBuild.
Exemplo
O project usa o seguinte a Choose elemento para selecionar qual conjunto de valores de propriedade no When elementos ao conjunto. Se o Condition atributos de ambos When elementos avaliar false, a propriedade valores a Otherwise elemento está definido.
<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