Share via


Costrutti condizionali di MSBuild

Aggiornamento: novembre 2007

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.

È possibile utilizzare gli elementi Choose come elementi figlio di Project, When e Otherwise. Gli elementi figlio di When e Otherwise possono essere ItemGroup, PropertyGroup o 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