السلام عليكم
عند استخدام ملفات او مكتبات DLL تحتاج الى تسجيلها في مجلد الـ Asamply حتى تعمل
اقصد الملفات التي تحتاج الى تسجيل
هل هناك برنامج يجعلها تعمل بمجرد وضعها مع الملف التنفيذي ...؟
او يدمجها معه تم يقوم بتشغيلها في الذاكرة مباشرة ...؟
مثلا الملفات المنتجة من شركة Devexpress لا تعمل الا بحال تسجيلها حتى لو وضعتها بجانب الملف التنفيذي فلن تعمل
اريد طريقة ما غير الطريقة التي يقوم بها الفيجوال ستوديو وهي تحزيم البرنامج
اولا عملية الدمج يجب أن تتم في مشروع منفصل ليس له علاقة بمشروعك الرئيسي
وعملية الدمج تتم كالأتي
1- تقرأ ملف dll علي هيئة مصفوفة بايت
2- تقوم بتعريف متغير عبارة عن Dictionary(Of String, Byte()) يحيث تكون مدخلاته اسم الملف قيمته التي عبارة عن مصفوفة بايت
3- تقوم بحفظ Dictionary(Of String, Byte()) في ملف واحد باستخدام BinaryWriter
وهكذا تكون حصلت علي ملف هذا الملف يكون بأي امتداد و اي اسم تحدده أنت
ثم ومن خلال مشروعك الرئيس تضيف الملف الي Resources وتجعله Embeded
ولكي تقرأ ملفات dll ثانية
عليك أن تقرأ الملف من Resources
ثم وباستخدام BinaryReader تقرأ الملف وتقوم بتحويله الي Dictionary(Of String, Byte()) ثانية
وعند الحاجة لملف dll معين فقط تقوم بتحميله باستخدام Assembly Load من Dictionary(Of String, Byte())
قد يبدو لك أن الخطوات صعبة قليلا لكنك لو نفذتها مرة واحدة ستتفهم انها خطوات بسيطة جدا
المهم في الأمر انك تكتب الكود بشكل صحيح
شكرا silverlight اذا لم تخونني ذاكرتي عندما كنت مبرمج دوت نت وكان في بداياته وقتها ولازال جديد في الساحة وكان هناك من الشخصيات التي بدأت مسيرة فتح الطريق لهذه الثقنية اذكر ان هناك واحد بنفس الاسم مع اسماء عديدة .
حسنا ، ولكن هناك شئ يبدو لي غير منطقي فمثلا ، الملفات هذه ليست مجرد مكتبات بها كود للتنفيذ فقط
الملفات هذه هي المسؤولة عن رسم النموذج والازرار وكل شئ مبرمج بها .
يعني حتى استطيع اللحاق بتسجيل هذه المكتبات سيتوقف البرنامج قبل الظهور .
ذاكرتك جيدة و الحمد لله
الحلول أمامك كالأتي
1- إما ان تتعامل مع Assembly باستخدام Reflection
2- أو تستخدم Global Assembly Cache Tool
وتستخدمه في عمل Install لملف dll الي global assembly cache
راجع الرابط التالي بخصوص الحل الثاني
الرابط
حسنا سؤال أخير اذا حالفني الحظ من جديد بمرورك من هنا .
فانا صار لي فترة طويلة غائب عن الدوت نت .
هناك ملفات تضعها مع الملف التنفيذي مكتبات لتنفيذ كود او حتى لتصميم الواجهة والازرار يعني مكونات مرئية
تضعها مع الملف التنفيذي وتعمل بشكل عادي ولا تحتاج تسجيل
وهناك ملفات ضروري تحتاج الى تسجيل
ما الفرق بينهم ، ولماذا هذا يعمل هكذا وهذا يعمل هكذا
حتى راس الخيط فقط وانا اكمل البحث بنفسي
مرحبا بك في .......................................................
Dll Hell
فعلا هو جحيم ملفات الربط الديناميكي