الأهداف ‏‫MSBuild

أهداف تجميع المهام بترتيب معين مع بعضها البعض والسماح بنية العملية إلى أن factored إلى وحدات أصغر. على سبيل المثال، قد يقوم هدف واحد بحذف الجميع الملفات في direcإلىry إخراج إلى التحضير للإنشاء، بينما البعض بتجميع الإدخالات للمشروع ويضعها في direcإلىry فارغة. للحصول على مزيد من المعلومات حول المهام ، راجع مهام ‏‫MSBuild .

التصريح الأهداف في ملف مشروع

يتم تعريف أهداف في ملف مشروع مع العنصر الهدف. على سبيل المثال، تنشئ XML التالية الهدف المسمى "إنشاء"، بعد ذلك الذي يستدعي مهمة Csc بنوع العنصر "ترجمة".

<Target Name="Construct">

<Csc Sources="@(Compile)" />

</Target>

إعادة مثل خصائص ‏‫MSBuild، أهداف يمكن أن يتم تعريف. على سبيل المثال،

<Target Name="AfterBuild" >

<Message Text="First occurrence" />

</Target>

<Target Name="AfterBuild" >

<Message Text="Second occurrence" />

</Target>

إذا لم ينفذ AfterBuild، يعرض فقط "الثانيه التكرار".

طلب بنية الهدف

يجب أن تكون مرتبة الهدف s إذا كان إدخال إلى إحدى الهدف يعتمد تشغيل إخراج آخر الهدف. هناك عدة طرق إلى تعيين الترتيب في الأهداف التي تم تشغيلها.

  • الأهداف الأولية

  • أهداف افتراضية

  • الهدف أول

  • تبعيات الهدف

  • RunBeforeTargetsوRunAfterTargets(‏‫MSBuild 4.0)

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

لمزيد من المعلومات حول الهدف وتفاصيل بنية ترتيب، راجع طلب بنية الهدف.

تجميع الهدف

أ الهدف قد يكون العنصر Outputsالسمة التي تحدد بيانات التعريف في النموذج% (بيانات التعريف). إذا كان الأمر كذلك، يعمل ‏‫MSBuild الهدف مرة واحدة لكل القيمة بيانات التعريف والتجميع أو "تجميع" عناصر التي تحتوي على قيم بيانات التعريف هذه. على سبيل المثال،

<ItemGroup>

<Reference Include="System.Core">

<RequiredTargetFramework>3.5</RequiredTargetFramework>

</Reference>

<Reference Include="System.Xml.Linq">

<RequiredTargetFramework>3.5</RequiredTargetFramework>

</Reference>

<Reference Include="Microsoft.CSharp">

<RequiredTargetFramework>4.0</RequiredTargetFramework>

</Reference>

</ItemGroup>

<Target Name="AfterBuild"

Outputs="%(Reference.RequiredTargetFramework)">

<Message Text="Reference:

@(Reference->'%(RequiredTargetFramework)')" />

</Target>

يجمع عناصر المرجعية ببيانات التعريف RequiredTargetFramework الخاصة بهم. إخراج للهدف يبدو مثل هذا:

Reference: 3.5;3.5

Reference: 4.0

الهدف batching هو seldom used في real builds. مهمة batching هو المزيد عام. لمزيد من المعلومات، راجع تجميع ‏‫MSBuild.

بناء تزايدي

تزايدي builds are builds that are الأمثل so that targets مع ملفات الإخراج that are لأعلى-إلى-التاريخ مع respect إلى their corresponding إدخال files are not executed. A الهدف عنصر can have كلاهما Inputs و Outputs السمات, indicating what عناصر the الهدف expects كـ إدخال, و what عناصر it produces كـ إخراج.

If الجميع إخراج عناصر are لأعلى-إلى-التاريخ, ‏‫MSBuild skips the الهدف, which significantly improves the بنية سرعة. ويسمى هذا بناء تراكمي من الهدف. If فقط some ملفات are لأعلى-إلى-التاريخ, ‏‫MSBuild executes the الهدف without the لأعلى-إلى-التاريخ عناصر. This هو called a جزئي تزايدي بنية of the الهدف. لمزيد من المعلومات، راجع بناء تزايدي.

راجع أيضًا:

المهام

كيفية القيام بما يلي: استخدم الهدف نفسه في ملفات مشروع متعددة

موارد أخرى

MSBuild Concepts