عنصر بيانات التعريف في مهمة تجميع

MSBuild has the ability إلى divide العنصر lists في different فئات, أو batches, based تشغيل العنصر بيانات التعريف, و run a مهمة واحد الوقت مع each batch. It can be confusing إلى understand exactly what عناصر are being passed مع which batch. يغطي هذا الموضوع السيناريوهات عام التالية التي تشمل تجميع.

  • تقسيم العنصر قائمة في دفعات

  • تقسيم عدة قوائم العنصر في دفعات

  • تجميع واحد العنصر في نفس وقت

  • تصفية العنصر سرد

لمزيد من معلومات تشغيل تجميع مع MSBuild، راجع تجميع ‏‫MSBuild.

تقسيم العنصر قائمة في دفعات

تجميع يسمح لك في بقائمة العناصر في تقسيم في دفعات مختلفة استناداً في بيانات تعريف العنصر، ومسار كل من الدفعات في في مهمة شكل منفصل. Th هو هو مفيدة لإنشاء تجميعات القمر الصناعي.

يوضح المثال التالي كيف في بقائمة العناصر في تقسيم في دفعات استناداً في بيانات تعريف العنصر. ExampCollعنصر lهوt هو مقسمة في ثلاث دفعات استناداً Numberعنصر بيانات التعريف. وجود %(ExampColl.Number)في Textسمة يعلم MSBuildأنه تجميع يجب إنجاز. ExampCollعنصر lهوt هو مقسمة إلى ثلاث دفعات استناداً Numberبيانات التعريف، كل دفعة هو تمرير بشكل منفصل إلى مهمة.

<Project
    xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
    
    <ItemGroup>
        <ExampColl Include="Item1">
            <Number>1</Number>
        </ExampColl>
        <ExampColl Include="Item2">
            <Number>2</Number>
        </ExampColl>
        <ExampColl Include="Item3">
            <Number>3</Number>
        </ExampColl>
        <ExampColl Include="Item4">
            <Number>1</Number>
        </ExampColl>
        <ExampColl Include="Item5">
            <Number>2</Number>
        </ExampColl>
        <ExampColl Include="Item6">
            <Number>3</Number>
        </ExampColl>
    </ItemGroup>

    <Target Name="ShowMessage">
        <Message
            Text = "Number: %(ExampColl.Number) -- Items in ExampColl: @(ExampColl)"/>
    </Target>

</Project>

المهام الرسالةالمهام بعرض المعلومات التالية:

Number: 1 -- Items in ExampColl: Item1;Item4

Number: 2 -- Items in ExampColl: Item2;Item5

Number: 3 -- Items in ExampColl: Item3;Item6

قسمة عدة العنصر سرد إلى دفعات

MSBuildيمكن تقسيم متعددة العنصر القوائم في دفعات بناء على نفس بيانات التعريف. وهذا يسهل في تقسيم قوائم عنصر آخر في في دفعات في إنشاء تجميعات المتعددة. على سبيل المثال، قد يكون لقائمة عنصر بملفات.cs مقسماً في دفعي تطبيق و دفعات تجميع، و تقسم قائمة عنصر ملفات الموارد في دفعي تطبيق و دفعي تجميع. يمكنك بعد ذلك استخدام تجميع في تمرير هذه القوائم العنصر في في واحد المهمة وقم ببنية كل من تطبيق والتجميع.

ملاحظة

إذا تضمن lهوt عنصر الذي يتم تمريره إلى مهمة لا يوجد عناصر باستخدام بيانات التعريف المشار إليه، كل عنصر في ذلك lهوt عنصر هو الذي تم تمريره في كل دفعة.

يوضح المثال التالي كيفية في تقسيم قائمة العناصر المتعددة في في دفعات استناداً في بيانات تعريف العنصر. ExampCollو ExampColl2قوائم العنصر كل تنقسم في ثلاث دفعات يعمل تشغيل Numberعنصر بيانات التعريف. وجود %(Number)في Textسمة يعلم MSBuildأنه تجميع يجب إنجاز. ExampCollو ExampColl2lهوts عنصر تنقسم إلى ثلاث دفعات استناداً Numberبيانات التعريف، كل دفعة هو تمرير بشكل منفصل إلى مهمة.

<Project
    xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
    
    <ItemGroup>

        <ExampColl Include="Item1">
            <Number>1</Number>
        </ExampColl>
        <ExampColl Include="Item2">
            <Number>2</Number>
        </ExampColl>
        <ExampColl Include="Item3">
            <Number>3</Number>
        </ExampColl>

        <ExampColl2 Include="Item4">
            <Number>1</Number>
        </ExampColl2>
        <ExampColl2 Include="Item5">
            <Number>2</Number>
        </ExampColl2>
        <ExampColl2 Include="Item6">
            <Number>3</Number>
        </ExampColl2>

    </ItemGroup>

    <Target Name="ShowMessage">
        <Message
            Text = "Number: %(Number) -- Items in ExampColl: @(ExampColl) ExampColl2: @(ExampColl2)"/>
    </Target>

</Project>

المهام الرسالةالمهام بعرض المعلومات التالية:

Number: 1 -- Items in ExampColl: Item1 ExampColl2: Item4

Number: 2 -- Items in ExampColl: Item2 ExampColl2: Item5

Number: 3 -- Items in ExampColl: Item3 ExampColl2: Item6

تجميع واحد العنصر في وقت

تجميع يمكن أيضا إجراء تشغيل بيانات تعريف العنصر المعروفة التي هو المعينة لكل عنصر عند الإنشاء. وهذا يضمن أنه سيكون كل عنصر في مجموعة بيانات تعريف بعض إلى لاستخدامه في تجميع. Identityالقيمة بيانات التعريف هو فريدة لكل عنصر، و هو مفيدة لتقسيم كل عنصر lهوt عنصر إلى دفعي منفصل. للحصول على قائمة من العناصر المعروفة بيانات التعريف، راجع MSBuild Well-known عنصر بيانات التعريف.

يوضح المثال التالي كيفية إلى الدفع كل عنصر في قائمة عنصر واحد في مرة الواحدة. لأن Identityالقيمة كل عنصر بيانات التعريف الفريد، ExampCollقائمة العناصر ينقسم في ستة دفعات، كل دفعة التي تحتوي على عنصر واحد من القائمة العنصر. وجود %(Identity)في Textسمة يعلم MSBuildأنه تجميع يجب إنجاز.

<Project
    xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
    
    <ItemGroup>

        <ExampColl Include="Item1"/>
        <ExampColl Include="Item2"/>
        <ExampColl Include="Item3"/>
        <ExampColl Include="Item4"/>
        <ExampColl Include="Item5"/>
        <ExampColl Include="Item6"/>

    </ItemGroup>

    <Target Name="ShowMessage">
        <Message
            Text = "Identity: &quot;%(Identity)&quot; -- Items in ExampColl: @(ExampColl)"/>
    </Target>

</Project>

المهام الرسالةالمهام بعرض المعلومات التالية:

Identity: "Item1" -- Items in ExampColl: Item1
Identity: "Item2" -- Items in ExampColl: Item2
Identity: "Item3" -- Items in ExampColl: Item3
Identity: "Item4" -- Items in ExampColl: Item4
Identity: "Item5" -- Items in ExampColl: Item5
Identity: "Item6" -- Items in ExampColl: Item6

تصفية العنصر سرد

يمكن استخدام إلى تجميع عامل تصفية عن بعض العناصر من قائمة العناصر قبل تمريرها إلى مهمة. تشغيل سبيل المثال، تقوم بإجراء التصفية تشغيل Extensionالقيمة بيانات تعريف العنصر معروفة يسمح لك إلى تشغيل مهمة تشغيل فقط الملفات ذات ملحق معين.

يوضح المثال التالي كيف في بقائمة العناصر في تقسيم في دفعات على بيانات تعريف العنصر، وثم قم بتصفية هذه الدفعات حيث أنها يتم تمرير في في مهمة. ExampCollعنصر lهوt هو مقسمة في ثلاث دفعات استناداً Numberعنصر بيانات التعريف. Conditionتحدد السمة مهمة الذي يجمع فقط مع Numberالقيمة بيانات تعريف العنصر 2سيتم تمريرها في مهمة

<Project
    xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
    
    <ItemGroup>

        <ExampColl Include="Item1">
            <Number>1</Number>
        </ExampColl>
        <ExampColl Include="Item2">
            <Number>2</Number>
        </ExampColl>
        <ExampColl Include="Item3">
            <Number>3</Number>
        </ExampColl>
        <ExampColl Include="Item4">
            <Number>1</Number>
        </ExampColl>
        <ExampColl Include="Item5">
            <Number>2</Number>
        </ExampColl>
        <ExampColl Include="Item6">
            <Number>3</Number>
        </ExampColl>

    </ItemGroup>

    <Target Name="Exec">
        <Message
            Text = "Items in ExampColl: @(ExampColl)"
            Condition="'%(Number)'=='2'"/>
    </Target>

</Project>

المهام الرسالةالمهام بعرض المعلومات التالية:

Items in ExampColl: Item2;Item5

راجع أيضًا:

المرجع

MSBuild Well-known عنصر بيانات التعريف

عنصر العنصر (MSBuild)

عنصر ItemMetadata (MSBuild)

المبادئ

تجميع ‏‫MSBuild

موارد أخرى

MSBuild Concepts

مرجع MSBuild