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

نموذج الموزع و الوصلات الموصوف في الموضوع التحزيم و نشر الموارد هو التنفيذ للتصميم المرجح لتطوير التطبيقات بالموارد.

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

تحويل التجميعات التابعة برمجياً

قم باستخدام رابط التجميع (Al.exe) لتحويل الملفات .resources برمجياً إلى تجميعات تابعة. ينشئ Al.exe تجميع من الملفات .resources التي تحددها. لأن التجميعات التابعة بطبيعتها يمكن أن تحتوي على الموارد. لا يمكنها أن تحتوي علي أية تعليمات برمجية تنفيذية.

ينشئ الأمر Al.exe التالي تجميع تابع للتطبيق MyApp من الملف strings.de.resources.

al /t:lib /embed:strings.de.resources /culture:de /out:MyApp.resources.dll

ينشئ الأمر Al.exe التالي أيضاً تجميع تابع للتطبيق MyApp من الملف strings.de.resources. الخيار /template يسبب التجميع التابع ليرث بيانات تعريف التجميع من التجميع الأصل MyApp.dll.

al /t:lib /embed:strings.de.resources /culture:de /out:MyApp.resources.dll
/template:MyApp.dll

يشرح الجدول التالي الخيارات Al.exe المستخدمة في هذه الأمثلة بتفصيل أكبر.

الخيار

الوصف

/ t: lib

يقوم الخيار /t بتحديد أن التجميع التابع الخاص بك تم تحويله برمجياً إلى ملف مكتبة (.dll). التجميع التابع لا يمكن تنفيذه لأنه لا يحتوي على تعليمات برمجية و هو ليس التجميع الرئيسي الخاص بالتطبيق. لذلك، يجب عليك حفظ التجميعات التابعة كـ DLL.

/embed: strings.de.resources

يقوم الخيار /embed بتحديد اسم الملف المصدر المراد استخدامه عندما يقوم Al.exe بالتحويل البرمجي للتجميع التابع. لاحظ أنه يمكنك تضمين ملفات .resources متعددة في تجميع تابع. ومع ذلك، إذا كنت تتبع نموذج الموزع و الوصلات, يجب تحويل تجميع تابع واحد برمجياً لكل ثقافة. يمكنك، على الرغم من ذلك، إنشاء ملفات .resources منفصلة للسلاسل و الكائنات.

/culture: de

يقوم الخيار /culture بتحديد ثقافة المورد للتحويل البرمجي. وقت التشغيل يستخدم هذه المعلومات عند البحث عن موارد لثقافة محددة. إذا حذفت هذا الخيار، يضل Al.exe يحول المورد برمجيًا و لكن لن يتمكن وقت التشغيل من العثور عليه عندما يطلبه مستخدم.

/out:MyApp.resources.dll

الخيار/out يحدد اسم ملف الإخراج. يجب أن يتبع الاسم معيار التسمية baseNameالقياسية التسمية. ملحق، حيث يكون baseName هو اسم رئيسي صواب ، ويكون ملحق ملحق viable (مثل .dll). لاحظ أن وقت التشغيل غير قادر على تحديد ثقافة تجميع تابع استناداً إلى اسم ملف الإخراج الخاص به. لذلك فإنه من الضروري تحديد ثقافة عن طريق الخيار /culture الموضح أعلاه.

/template:اسم الملف

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

للحصول على قائمة كاملة من الخيارات المتوفرة لـ Al.exe ، راجع رابط التجميع (Al.exe).

تحويل التجميعات التابعة برمجياً بأسماء قوية

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

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

الحصول على المفتاح العام

لتأجيل توقيع تجميع, يجب أن يكون لديك حق الوصول إلى المفتاح العمومي. يمكنك إما الحصول على المفتاح العام الحقيقية من المؤسسة في الشركة التي ستقوم بإجراء التوقيع في النهاية أو إنشاء مفتاح عام باستخدام أداة الاسم القوي (Sn.exe) .

يقوم الأمر Sn.exe التالي بإنشاء زوج مفاتيح اختبار عمومي/خاص و حفظه في ملف TestKeyPair.snk. يحدد الخيار –k إلى Sn.exe لإنشاء زوج مفاتيح جديد و حفظه في الملف المحدد.

sn –k TestKeyPair.snk 

يمكنك استخراج المفتاح العمومي من الملف الذي يحتوي على زوج مفاتيح الاختبار. يقوم الأمر التالي باستخراج المفتاح العام من TestKeyPair.snk وحفظه في PublicKey.snk.

sn –p TestKeyPair.snk PublicKey.snk

تأجيل توقيع تجميع

بمجرد أن تحصل على أو تنشئ المفتاح العام، قم باستخدام رابط التجميع (Al.exe) لتحويل التجميع برمجياً و تحديد التوقيع المؤجل.

ينشئ الأمر Al.exe التالي تجميع تابع ذا اسم قوي للتطبيق MyApp من الملف strings.ja.resources.

al /t:lib /embed:strings.ja.resources /culture:ja /out:MyApp.resources.dll /delay+ /keyfile:PublicKey.snk

يحدد الخيار /delay+ تأخير توقيع التجميع. الخيار / keyfile: يقوم بتعيين اسم ملف المفتاح الذي يحتوي على المفتاح العام لاستخدام لتأخير توقيع التجميع.

للحصول على مزيد من المعلومات حول تأخير التوقيع ، راجع تأخير توقيع تجميع .

لاحظ أن التجميعات التابعة ذات الأسماء القوية تحتوي على معلومات الإصدار التي يستخدمها وقت التشغيل لتحديد أي تجميع يجب استخدامه لتلبية طلب ربط. للحصول على مزيد من المعلومات حول هذا الموضوع ، راجع تعيين إصدار التجميع.

إعادة توقيع تجميع

في تاريخ لاحق ما، يجب إعادة توقيع أي تجميع تابع ذي توقيع مؤجل بزوج مفاتيح حقيقية. يمكنك القيام بذلك باستخدام Sn.exe.

يقوم الأمر Sn.exe التالي بتوقيع MyApp.resources.dll بزوج مفاتيح حقيقية مخزنة في الملف RealKeyPair.snk. يقوم الخيار –R بتحديد Sn.exe لإعادة توقيع تجميع تم توقيعه مسبقاً أو ذي توقيع مؤجل.

sn –R MyApp.resources.dll RealKeyPair.snk 

تثبيت تجميع تابع في مخزن التجميع العمومي

مخزن التجميع العمومي المؤقت هو الموقع الأول الذي يبحث فيه وقت التشغيل عن الموارد في عملية الرجوع للمورد الاحتياطي. لمزيد من المعلومات، راجع الموضوع الفرعي "عملية الرجوع للمورد الاحتياطي" في الموضوع حزم و نشر الموارد. لذلك، فمن المهم معرفة كيفية تثبيت الموارد داخل مخزن التجميع العمومي المؤقت. التجميع التابع الذي قمت بتحويله برمجياً باسم قوي جاهز للتثبيت في مخزن التجميع العمومي المؤقت. يمكنك تثبيت تجميعات في ذاكرة التخزين المؤقت باستخدام أداة مخزن التجميع العمومي المؤقت (Gacutil.exe).

يقوم الأمر Gacutil.exe التالي بتثبيت MyApp.resources.dll في مخزن التجميع العمومي المؤقت.

gacutil /i:MyApp.resources.dll

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

مواقع الدليل للتجميعات التابعة الغير مثبتة في مخزن التجميع العمومي المؤقت

بعد أن قمت بالتحويل البرمجي للتجميعات التابعة الخاص بك، أصبح لهم جميعاً نفس الاسم. يفرِق وقت التشغيل بينها استناداً إلى الثقافة المحددة في وقت التحويل البرمجي الوقت عن طريق الخيار /culture الخاص بـ Al.exe و موقع الدليل لكل تجميع. يجب عليك وضع التجميعات التابعة الخاصة بك في مواقع الدليل المتوقعة.

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

دليل التجميع التابع

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

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

إذا كان التطبيق الخاص بك يتضمن موارد لثقافات فرعية، ضع كل ثقافة فرعية في الدليل الخاص بها.لا تضع ثقافات فرعية في دلائل فرعية للدليل الرئيسي للثقافة الخاصة بهم.

راجع أيضًا:

المرجع

Al.exe (رابط التجميع)

Sn.exe (أداة الاسم القوي)

Gacutil.exe (أداة مخزن التجميع العمومي المؤقت)

المبادئ

حزم و نشر الموارد

تأخير توقيع تجميع

الموارد في التطبيقات