سؤال

أنا أعمل على وحدة CMS.هذه الوحدة بوصفها فئة مكتبة DLL.

لدي العديد من المرافق المكتبات أود أن استخدم في هذه الوحدة.هناك على أية حال أنا يمكن ربط هذه المكتبات بشكل ثابت حتى لا أضطر إلى توزيع العديد من DLL (وبالتالي توزيع بلدي فائدة المكتبات على حدة) ؟

وأود أن يكون واحد فقط DLL.

هل كانت مفيدة؟

المحلول

يمكنك دمج العديد من ملفات Dll مع ILMERGE:

http://research.microsoft.com/~mbarnett/ILMerge.aspx

لم تكن قد حاولت ذلك بنفسي.آمل أن يساعد.


تحميل هنا:
http://www.microsoft.com/downloads/details.aspx?familyid=22914587-B4AD-4EAE-87CF-B14AE6A939B0&displaylang=en

وصف مختصر (من تحميل الصفحة)
ILMerge هو أداة دمج عدة .صافي الجمعيات في واحد .صافي الجمعية.يعمل على الملفات التنفيذية و دلس على حد سواء و يأتي مع العديد من الخيارات للتحكم في تجهيز و تنسيق الإخراج.انظر الوثائق المرفقة لمزيد من التفاصيل.

نصائح أخرى

إذا كنت لا تريد استخدام ILMerge راجع هذه الصفحة:

http://blogs.msdn.com/b/microsoft_press/archive/2010/02/03/jeffrey-richter-excerpt-2-from-clr-via-c-third-edition.aspx

ملاحظة المحرر:جيفري ريختر النصائح لوضع dlls الخاصة بك إلى ملف exe كما في الموارد (لكل ملف DLL يمكنك إضافة عرض خصائصه و "بناء العمل" إلى "جزءا لا يتجزأ من الموارد.").ثم فئة مخصصة محمل اللازمة لجعل عمل قابلة للتنفيذ (في وقت التشغيل ، CLR لن تكون قادرة على العثور على تعتمد DLL الجمعيات التي هو المشكلة.يصلح هذا عند التطبيق الخاص بك تهيئة, تسجيل طريقة الاستدعاء مع AppDomain هو ResolveAssembly الحدث).

تأكد من تغيير resourceName سلسلة للإشارة إلى الموارد الفعلية.(مثلا ، تغيير AssemblyLoadingAndReflection إلى اسم المشروع الخاص بك.)

الإجابة القصيرة لهذا هو لا!لا يمكنك ربط في dll خلال تجميع.أنا لا أعرف إذا كان هناك طريقة خفية للقيام بذلك ، ولكن هل من المحتمل أن توزيع dlls جنبا إلى جنب مع نظام إدارة المحتوى الخاص بك.أفضل طريقة للقيام بذلك هو نوع من إعادة للتوزيع.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top