سؤال

أرغب في تحديث مكتبة الفصل (ملف DLL واحد) في تطبيق ويب إنتاج. تطبيق الويب هذا مبلور مسبقًا (منشور). قرأت إجابة على Stackoverflow (آسف ، لا يمكن أن تجدها بعد الآن لأن وظيفة البحث لا تعمل بشكل جيد للغاية) ، مما دفعني إلى الاعتقاد بأنني أستطيع لصق DLL الجديد في مجلد BIN وسيتم اختياره UP بدون مشاكل (قد يتسبب ذلك في إعادة تدوير WP ، وهو أمر جيد معي لأننا لا نستخدم حالة الجلسة InProc).

ومع ذلك ، عندما جربت هذا ، ينفجر موقعي ويعطي pileLoadexception قائلاً إن تعريف الجمعية الواضحة لا يتطابق مع مرجع التجميع. ماذا في العالم هذا؟! إن تحديث DLL في Visual Studio وإعادة نشر الموقع بأكمله يعمل بشكل جيد ، لكنه ألم كبير في العمق. ما هي الهدف من وجود DLL منفصل إذا كان عليك إعادة نشر الموقع بأكمله لتنفيذ أي تغييرات؟

إليك السؤال: كيف يمكنني تحديث DLL على موقع ويب الإنتاج دون كسر التطبيق وبدون إعادة نشر جميع الملفات؟

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

المحلول

الشيء الذي يجب تذكره هو أن هناك مواقع الويب و تطبيقات الويب بقدر ما يعتبر Visual Studio و ASPNET.

عادةً ما تحتوي مواقع الويب على جميع ملفات ASPX و VB المنشورة على Server Live و ASPNET لعامل العمال تعيد تنسيق التطبيق في كل مرة قبل العرض التقديمي.

على الطرف الآخر ، يوجد تطبيق الويب ، حيث يتم تجميع جميع التعليمات البرمجية وراء الملفات إلى ملف DLL واحد وتبحث ببساطة صفحات ASPX الخاصة بك وأنت BIN مجلد مع ملف DLL للإنتاج.

هناك أيضًا "هجين" يُعرف باسم "مواقع الويب المسبقة"(انظر الرابط الخاص بنظرة عامة رسمية MSDN) حيث لا يكون لديك تخطيط DLL واحد لتطبيق الويب ، ولكن يتم تنفيذ جميع أعمال المواقع الخاصة بك من أجلك. الاحتياجات.

يبدو لي أن خطأك يحدث لأن موقعك يتم إعداده كموقع ويب مع نوع من التحميل المسبق في مكانه. يعد استخدام النموذج المسبق مسبقًا أكثر "صارمًا" أكثر بقليل في أن بعض الملفات/التوقيعات موجودة. يؤدي وجود إصدار محدث من ملف DLL إلى استراحة لأن Precompilation يريد اسمًا وإصدارًا من الملف.

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

نصائح أخرى

انظر إلى هذا المنشور ، قد يكون ما تشير إليه. لا يتطابق تعريف الجمعية الواضحة للتجميع مع مرجع التجميع

إلقاء نظرة على مرجعك. هل تقول "نسخة محددة = صواب"؟ قم بتعيينه على خطأ ، قم بإعادة نشر تطبيقك (عليك القيام بذلك مرة واحدة ، لأن تطبيقك الآن لا يزال يبحث عن مجموعة مع بيان محدد) وجربه مرة أخرى.

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