ثوابت ‏‫MSBuild الشرطية

MSBuild توفر تقنية لمعالجة إما أو مع العناصر Choose, When و Otherwise.

باستخدام عنصر Choose

العنصر Choose يحتوي على سلسلة من عناصر When مع سمات Condition التي يتم إختبارها بالترتيب من الأعلى إلى الأسفل حتى تأخذ إحداها القيمة true. إذا كان هناك أكثر من عنصر When واحد يأخذ القيمة true، يتم استخدام الأول فقط.. إذا كان عنصر Otherwise موجود ، سيتم تقييمه إذا كان هناك لا يوجد شرط على عنصر When يأخذ القيمة true.

يمكن إستخدام عناصر Choose كعناصر فرعية للعناصر Project, When و Otherwise. يمكن لعناصر When و Otherwise أن يكون لديها العناصر التابعة ItemGroup, PropertyGroup، أو Choose.

مثال

يستخدم المثال التالي عناصر Choose و When للمعالجة إما / أو. يتم تعيين خصائص و عناصر المشروع تبعاً لقيمة الخاصية 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>

راجع أيضًا:

المرجع

عنصر Choose (‏‫MSBuild)

عنصر When (‏‫MSBuild)

عنصر Otherwise (‏‫MSBuild)

موارد أخرى

مرجع ‏‫MSBuild