Condividi tramite


Costrutti condizionali di MSBuild

MSBuild offre un meccanismo per l'elaborazione either/or mediante gli elementi Choose, When e Otherwise.

Utilizzo dell'elemento Choose

L'elemento Choose contiene una serie di elementi When con attributi Condition che vengono sottoposti a test dall'alto verso il basso, fino a quando un attributo non restituisce true. Se più elementi When restituiscono true, viene utilizzato solo il primo. Verrà restituito un elemento Otherwise, se presente, se nessuna condizione per un elemento When restituisce true.

Gli elementi Choose possono essere utilizzati come elementi figlio di Project, When e Otherwise. Gli elementi When e Otherwise possono avere gli elementi figlio ItemGroup, PropertyGroup e Choose.

Esempio

Nell'esempio riportato di seguito vengono utilizzati gli elementi Choose e When per l'elaborazione either/or. Le proprietà e gli elementi del progetto vengono impostati in base al valore della proprietà Configuration.

<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>
    </Choose>
    <!-- Rest of Project -->
</Project>

Vedere anche

Riferimenti

Elemento Choose (MSBuild)

Elemento When (MSBuild)

Elemento Otherwise (MSBuild)

Altre risorse

Riferimenti a MSBuild