مشاركة عبر


عنصر Choose (‏‫MSBuild)

تقيم العناصر التابعة لتختار مجموعة واحدة من العناصر ItemGroup و/أو عناصر PropertyGroup للتقييم.

<Choose>
    <When Condition="'StringA'=='StringB'">... </When>
    <Otherwise>... </Otherwise>
</Choose>

السمات والعناصر

تصف المقاطع التالية سمات، عناصر تابعة وعناصر الأصل.

السمات

لا يوجد.

العناصر التابعة

العنصر

الوصف

Otherwise

عنصر اختياري.

تحدد كتلة تعليمات برمجية PropertyGroup و عناصر ItemGroup لتقييم إذا كانت شروط العناصر When تأخذ القيمة false. قد يكون هناك صفر أو واحد من عناصر Otherwise في عنصر Choose و يجب أن يكون هو العنصر الأخير.

When

العنصر المطلوب.

تحدد كتلة محتملة من التعليمات البرمجية للعنصر ـ Choose ليتم إختيارها. قد يكون هناك واحد أو أكثر من عناصر When في عنصر Choose.

العناصر الأصلية

العنصر

الوصف

Otherwise

تحدد كتلة التعليمات برمجية التي سيتم تنفيذها إذا كانت شروط كل عناصر When تأخذ القيمة false.

Project

العنصر الجذري المطلوب في ملف المشروع MSBuild.

When

تحدد كتلة محتملة من التعليمات البرمجية للعنصر ـ Choose ليتم إختيارها.

ملاحظات

يتم إستخدام عناصر Choose, When، و Otherwise معاً لتحديد طريقة لاختيار مقطع واحد من نعليمات برمجية لتنفيذها من واحد من مجموعة من البدائل المحتملة. لمزيد من المعلومات، راجع ثوابت ‏‫MSBuild الشرطية.

مثال

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

<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>

راجع أيضًا:

المرجع

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

المبادئ

مرجع مخطط ملف مشروع ‏‫MSBuild