عناصر ‏‫MSBuild

عناصر are inputs في the بنية النظام, و typically represent ملفات. عناصر are grouped في العنصر أنواع based تشغيل their عنصر أسماء. العنصر أنواع are named lists of عناصر that can be used كـ معلمات for tasks. The tasks استخدم the العنصر قيم إلى perform the steps of the بنية عملية.

لأنه يتم تسمية العناصر نوع العنصر ينتمون إلى شروط "العنصر" و "عنصر القيمه" يمكن أن يتم استخدام التبادل.

Creating عناصر في a ملف مشروع

عناصر are declared في the ملف مشروع كـ فرع elements of an ItemGroup عنصر. The اسم of the فرع عنصر هو the نوع of the العنصر. Includeتحدد سمة للعنصر العناصر (الملفات) المراد تضمينها مع التي نوع العنصر. على سبيل المثال، تنشئ XML التالي نوع العنصر باسم ترجمة ، الذي يشتمل على ملفين.

<ItemGroup>

<Compile Include = "file1.cs"/>

<Compile Include = "file2.cs"/>

</ItemGroup>

لا يحل محل العنصر "file2.cs" العنصر "file1.cs"؛ وبدلاً من ذلك، يتم إلحاق إلى قائمة قيم Compileنوع العنصر. لا يمكن إزالة عنصر من نوع العنصر أثناء مرحلة التقييم لبناء.

ينشئ XML التالية نفس نوع العنصر بالتصريح كلا الملفين في واحد Includeالسمة. Notice that the ملف أسماء are separated بواسطة a semicolon.

<ItemGroup>

<Compile Include = "file1.cs;file2.cs"/>

</ItemGroup>

Creating عناصر During Execution

عناصر positioned outside الهدف elements are assigned قيم during the evaluation مرحلة of a بنية. During the subsequent execution مرحلة, عناصر can be تاريخ الإنشاء أو ‏‏تاريخ التعديل كـ follows:

  • عناصر can be emitted بواسطة أي مهمة. إلى emit an العنصر, the مهمة عنصر must have a فرع إخراج عنصر that has an ItemName سمة.

  • عناصر can be emitted بواسطة the CreateItem مهمة. Th هو استخدام هو مهمل.

  • البدء في the .NET Framework 3.5, Target عناصر may contain ItemGroup عناصر that may contain العنصر عناصر.

Referencing عناصر في a ملف مشروع

العنصر أنواع are مشار إليها throughout the ملف مشروع بواسطة using the بناء الجملة @(ItemType). على سبيل المثال، نوع العنصر في المثال السابق هي أن يشار إلى باستخدام @(Compile). This بناء الجملة lets you pass عناصر إلى tasks بواسطة specifying the العنصر نوع كـ a معلمة of that مهمة. لمزيد من المعلومات، راجع كيفية القيام بما يلي: تحديد الملفات المراد بنية.

بشكل افتراضي عناصر لنوع العنصر مفصولة بفاصلة منقوطة (;) عند ذلك هو موسعة. استخدم بناء الجملة @ ( ItemType ، ' separaإلىr ') إلى تعيين separaإلىr الافتراضي. لمزيد من المعلومات، راجع كيفية القيام بما يلي: عرض قائمة لعناصر مفصولة بالفاصلة.

استخدام أحرف البدل إلى لتحديد العناصر

يمكنك استخدام **، *، و؟ أحرف البدل إلى تحديد مجموعة من الملفات كإدخالات لبناء بدلاً من سرد كل ملف بشكل منفصل.

  • ؟ التلائمات حرف بدل حرف مفرد.

  • * حرف بدل التلائمات صفر أو المزيد الأحرف.

  • ** حرف بدل تسلسل الأحرف يوافق مسار جزئي.

على سبيل المثال، إلى تحديد الجميع ملفات.cs في direcإلىry الذي يحتوي على ملف مشروع، استخدم العنصر التالي في ملف مشروع.

<CSFile Include="*.cs"/>

عنصر الذي يحدد الجميع الملفات.vb تشغيل D: قد يكون محرك أقراص

<VBFile Include="D:/**/*.vb"/>.

للحصول على مزيد من المعلومات حول حرف بدل الأحرف، راجع كيفية القيام بما يلي: تحديد الملفات المراد بنية.

استخدام سمة استثناء

يمكن أن تحتوي على عناصر العنصر Excludeسمة، والتي تستبعد العناصر المحددة (ملفات) من نوع العنصر. Excludeسمة هو يستخدم عادة مع أحرف البدل. على سبيل المثال، XML التالي إضافة كل ملف.cs في الدليل إلى CSFile نوع العنصر، باستثناء DoNotBuild.csالملف.

<ItemGroup>

<CSFile Include="*.cs" Exclude="DoNotBuild.cs"/>

</ItemGroup>

Excludeسمة يؤثر فقط على عناصر تمت إضافتها من قبل Includeسمة في العنصر العنصر الذي يحتوي على عليها كلا. على سبيل المثال،

<Compile Include="*.cs" />

<Compile Include="*.res" Exclude="Form1.cs">

would not استبعاد the ملف Form1.cs, which was تمت الإضافة في the preceding العنصر عنصر.

لمزيد من المعلومات، راجع كيفية القيام بما يلي: استبعاد ملفات من بنية.

استخدام السمة في إزالة

البدء في the .NET Framework 3.5, Target عناصر may contain ItemGroup عناصر that may contain العنصر عناصر. يمكن أن تتضمن هذه العناصر عنصر Removeسمة، والذي يقوم بإزالة عناصر محددة (ملفات) من نوع العنصر. ل مثال، XML التالية إلى إزالة كل ملف.config من نوع العنصر يحول برمجياً.

<Target>

<ItemGroup>

<Compile Remove="*.config"/>

</ItemGroup>

</Target>

بيانات تعريف العنصر

قد يحتوي على عناصر بيانات التعريف بالإضافة إلى معلومات المجمعة من Includeو Excludeالسمات. يمكن استخدام بيانات التعريف هذه بواسطة المهام التي تتطلب الحصول على مزيد من المعلومات حول عناصر، أو إلى الدفع المهام والأهداف. ل المزيد من المعلومات حول تجميع، راجع تجميع ‏‫MSBuild.

بيانات التعريف هو مجموعة من أزواج القيمة المفتاح التي يتم تعريفها في ملف مشروع كعناصر تابعة لعنصر العنصر. اسم عنصر فرع هو الاسم الخاص ببيانات التعريف وقيمة عنصر فرع القيمة بيانات التعريف.

بيانات التعريف هو المقترنة بالعنصر العنصر الذي يحتوي عليه. على سبيل المثال، يقوم XML التالي بإضافة Cultureبيانات التعريف التي لديها القيمة Fr إلى كل من "واحد.cs" وعناصر "الثاني.cs" CSFile عنصر النوع.

<ItemGroup>

<CSFile Include="one.cs;two.cs">

<Culture>Fr</Culture>

</CSFile>

</ItemGroup>

An العنصر can have zero أو المزيد بيانات التعريف قيم. يمكن تم تغييره قيم بيانات التعريف في أي وقت. تعيين بيانات التعريف إلى القيمة فارغ بفاعلية إلى إزالته من الإنشاء.

الرجوع إلى بيانات تعريف العنصر في ملف مشروع

العنصر بيانات التعريف can be مشار إليها throughout the ملف مشروع بواسطة using the بناء الجملة %(ItemMetadataName). عند وجود الغموض، وهذا يمكن أن يكون مؤهلاً باستخدام اسم نوع العنصر، على سبيل المثال،%( من العنصرType.العنصربيانات التعريفاسم) يقوم باتباع المثال يستخدم بيانات تعريف العرض إلى الدفعات المهمة الرسائل. For المزيد معلومات حول how إلى استخدم العنصر بيانات التعريف for batching, see عنصر بيانات التعريف في مهمة تجميع.

<Project xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
  <ItemGroup>
    <Stuff Include="One.cs" >
      <Display>false</Display>
    </Stuff>
    <Stuff Include="Two.cs">
      <Display>true</Display>
    </Stuff>
  </ItemGroup>
  <Target Name="Batching">
    <Message Text="@(Stuff)" Condition=" '%(Display)' == 'true' "/>
  </Target>
</Project>

بيانات تعريف العنصر المعروف

عند إضافة عنصر إلى نوع العنصر، يتم تعيين هذا العنصر بعض بيانات تعريف المعروفة جيدا. على سبيل المثال، كل العناصر تحتوي بيانات التعريف معروفة %(Filename)قيمته هو اسم الملف الخاص بالعنصر. For a قائمة of well-known العنصر بيانات التعريف, see MSBuild Well-known عنصر بيانات التعريف.

Transforming العنصر أنواع Using بيانات التعريف

العنصر lists can be transformed في جديد العنصر lists بواسطة using بيانات التعريف. على سبيل المثال، نوع العنصر CppFilesيحتوي على العناصر التي تمثل.cpp تحويل الملفات في قائمة الملفات.obj باستخدام التعبير المطابق @(CppFiles -> '%(Filename).obj').

بإنشاء تعليمات برمجية التالية CultureResourceنوع العنصر التي تحتوي على نسخ من كافة EmbeddedResourceالعناصر بواسطة Cultureبيانات التعريف. The Culture بيانات التعريف القيمة becomes the القيمة of the جديد بيانات التعريف CultureResource.TargetDirectory.

<Target Name="ProcessCultureResources">
  <ItemGroup>
    <CultureResource Include="@(EmbeddedResource)"
       Condition="'%(EmbeddedResource.Culture)' != ''">
       <TargetDirectory>%(EmbeddedResource.Culture) </TargetDirectory>
    </CultureResource>
  </ItemGroup>
</Target>

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

ملفات تعريف العنصر

بداية 3.5 إطار عمل.NET، العنصر العنصرDefفيitionGroup يسمح لك بإضافة بيانات التعريف الافتراضي لأي نوع العنصر. مثل well-known بيانات التعريف, the الافتراضي بيانات التعريف هو associated مع الجميع عناصر of the specified العنصر نوع. الافتراضي بيانات التعريف can be بوضوح overridden في an العنصر تعريف. For مثال, the following XML gives the Compile عناصر "واحد.cs" و "three.cs" the بيانات التعريف BuildDay مع the القيمة "Monday", و gives the العنصر "الثاني.cs" the بيانات التعريف BuildDay مع the القيمة "Tuesday".

<ItemDefinitionGroup>
  <Compile>
    <BuildDay>Monday</BuildDay>
  </Compile>
</ItemDefinitionGroup>
<ItemGroup>
  <Compile Include="one.cs;three.cs" />
  <Compile Include="two.cs">
    <BuildDay>Tuesday</BuildDay>
  </Compile>
</ItemGroup>

لمزيد من المعلومات، راجع ملفات تعريف العنصر.

راجع أيضًا:

المهام

كيفية القيام بما يلي: تحديد الملفات المراد بنية

كيفية القيام بما يلي: استبعاد ملفات من بنية

كيفية القيام بما يلي: عرض قائمة لعناصر مفصولة بالفاصلة

المرجع

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

المبادئ

ملفات تعريف العنصر

تجميع ‏‫MSBuild

موارد أخرى

مفاهيم ‏‫MSBuild

MSBuild Overview