اسماء التجميع

الاسم الخاص بالتجميع يتم تخزينه في بيانات التعريف ولديه تأثير هام على نطاق التجميع والاستخدام بواسطة تطبيق ما. التجميع ذو الاسم القوي لديه اسم مؤهل بشكل كامل والذي يتضمن اسم التجميع والبيانات الموروثة والمفتاح العام ورقم الإصدار. ويتم الإشارة بشكل متكرر إلى ذلك باسم العرض، وبالنسبة للتجميعات المحملة يمكن الحصول عليها باستخدام الخاصية FullName.

يستخدم وقت التشغيل هذه المعلومات لتحديد موقع التجميع و تمييزها عن التجميعات الأخرى التي لديها نفس الاسم. على سبيل المثال، التجميع ذو الاسم القوي يسمى myTypes قد يكون لديه الاسم مؤهل بشكل كامل التالي:

myTypes, Version=1.0.1234.0, Culture=en-US, PublicKeyToken=b77a5c561934e089c, ProcessorArchitecture=msil
ملاحظةملاحظة

هندسة المعالج تتم إضافته إلى هوية التجميع في .NET Framework الإصدار 2.0 للسماح بتجميعات المعالجات ذات الإصدارات الخاصة.يمكنك إنشاء إصدارات للتجميع والتي تختلف هويتها عن هندسة المعالج، على سبيل المثال إصدارات المعالجات 32 بت و 64 بت.هندسة المعالج غير مطلوبة من أجل الأسماء القوية.لمزيد من المعلومات، راجع AssemblyName.ProcessorArchitecture.

في هذا المثال، يشير الاسم المؤهل بشكل كامل إلى أن التجميع myTypes لديه اسم قوي مع رمز مفتاح عمومي، ولديه قيمة بيانات موروثة للإنكليزية الخاصة بالولايات المتحدة ولديه رقم الإصدار 1.0.1234.0. هندسة المعالج الخاص به هو "msil" ، مما يعني أنه سيتم في نفس الوقت (JIT) - التحويل البرمجي إلي تليعمات برمجية 32 بت أو 64 بت علي حسب المعالج ونظام التشغيل.

التعليمة البرمجية التي تتطلب الأنواع في التجميع يجب أن يكون لديها اسم تجميع مؤهل بشكل كامل. وهذا يسمى الربط المؤهل بشكل كامل. الربط الجزئي والذي يحدد اسم التجميع فقط غير مسموح به عند الإشارة إلى التجميع في .NET Framework.

جميع مراجع التجميع تشير إلي التجميعات التي تكوّن .NET Framework يجب أن تحتوي أيضاً علي اسم مؤهل بشكل كامل للتجميع. على سبيل المثال، للإشارة إلي التجميع System.Data .NET Framework الخاص بالإصدار 1.0 يمكن أن يتضمن:

System.data, version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089

لاحظ أن الإصدار المتوافق لرقم الإصدار لكافة تجميعات .NET Framework التي يتم شحنها بالإصدار 1.0 من .NET Framework. للحصول على تجميعات .NET Framework، و قيمة البيانات الموروثة دوماً تكون محايدة، و المفتاح العمومي هو نفسه كما هو موضح في المثال أعلاه.

على سبيل المثال, لإضافة مرجع تجميع في ملف التكوين لإعداد وحدة إصغاء التتبع، فيجب عليك تضمين اسم مؤهل بشكل كامل في نظام تجميع .NET Framework:

<add name="myListener" type="System.Diagnostics.TextWriterTraceListener, System, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" initializeData="c:\myListener.log" />
ملاحظةملاحظة

وقت التشغيل يعامل أسماء التجميعات على أنها غير متحسسة لحالة الأحرف عند ربطها إلي تجميع ، ولكن يحافظ عليها بغض النظر عن استخدام أي حالة للأحرف في اسم تجميع.العديد من الأدوات في عدة تطوير برامج Windows (SDK) تعالج أسماء التجميعات كأسماء متحسسة للأحرف.للحصول على أفضل النتائج، قم بإدارة أسماء التجميعات كما لو كانوا متحسسين للأحرف.

تسمية مكونات التطبيق

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

ل مثال، إذا كان لديك تجميع تسمى myAssembly.exe أن مراجع التجميع تسمى myAssembly.dll، ربط يحدث بشكل صحيح إذا قمت بتنفيذ myAssembly.exe. ومع ذلك، إذا كان تطبيق آخر لتنفيذ myAssembly.exe باستخدام أسلوب AppDomain.ExecuteAssembly، يحدد وقت التشغيل هذه "myAssembly" هو بالفعل تم تحميله عندما يطلب myAssembly.exe ربط إلى "myAssembly." في هذه الحالة، لن يتم تحميل myAssembly.dll أبداً. لأن myAssembly.exe لا يحتوي على النوع المطلوب، ويحدث TypeLoadException.

لتجنب هذه المشكلة، تأكد من أن التجميعات التي تشكل التطبيق الخاص بك لا تمتلك نفس اسم التجميع أو نفس مكان التجميعات في دلائل مختلفة.

ملاحظةملاحظة

إذا قمت بوضع تجميع ذو اسم قوي في الذاكرة المؤقتة العمومية للتجميع، يجب أن يطابق اسم ملف التجميع اسم التجميع (ولا يتضمن ذلك ملحق اسم الملف مثل .exe أو .dll).على سبيل المثال، إذا كان اسم ملف التجميع هو myAssembly.dll، فيجب ان يكون اسم التجميع هو myAssembly.التجميعات الخاصة المنشورة فقط في دليل جذر التطبيق يمكن أن تحتوي علي اسم تجميع مختلف عن اسم الملف.

راجع أيضًا:

المهام

كيفية القيام بما يلي: تحديد الاسم المؤهل بالكامل للتجميع

المبادئ

إنشاء التجميعات

التجميعات المسماة قوية

ذاكرة التخزين المؤقتة للتجميع العمومي

كيفية تحديد وقت التشغيل مواقع التجميعات

موارد أخرى

البرمجة مع التجميعات