Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
MSBuild proporciona un mecanismo para cualquier procesamiento con los elementos Choose, When y Otherwise.
Usar el elemento Choose
El elemento Choose contiene una serie de elementos When con atributos Condition que se prueban en orden de arriba abajo, hasta que uno se evalúe como true. Si más de un elemento When se evalúa como true, se usará solo el primero. Un Otherwise elemento, si está presente, se evalúa si no hay ninguna condición en un When elemento se evalúa como true.
Los elementos Choose se pueden usar como elementos secundarios de los elementos Project, When y Otherwise. Los elementos When y Otherwise pueden tener elementos secundarios ItemGroup, PropertyGroup o Choose.
Ejemplo
En el ejemplo siguiente se usan los elementos Choose y When para cualquier procesamiento. Las propiedades y los elementos del proyecto se establecen en función dl valor de la propiedad Configuration.
<Project>
<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>
</Choose>
<!-- Rest of Project -->
</Project>
En este ejemplo, se utiliza una condición en una constante del compilador DEFINED_CONSTANT. Estas definiciones se incluyen en la DefineConstants propiedad . La expresión regular se usa para hacer coincidir la constante exacta en una lista separada por punto y coma.
<Choose>
<When Condition="$([System.Text.RegularExpressions.Regex]::IsMatch(
$(DefineConstants), '^(.*;)*DEFINED_CONSTANT(;.*)*$'))">
<!-- When DEFINED_CONSTANT is defined. -->
</When>
<!-- other conditions -->
</Choose>