هل من الممكن تحميل نسختين من وقت تشغيل .NET في نفس العملية؟

StackOverflow https://stackoverflow.com/questions/201663

سؤال

هناك سيناريوهان أحتاج إلى توضيحهما:

  1. يحتاج جهاز التشغيل القابل للتنفيذ باستخدام .NET 3.5 إلى استخدام مكتبة تم تجميعها باستخدام .NET 1.1 ويجب تشغيل المكتبة في وقت التشغيل 1.1.

  2. يحتاج مجمع قابلة للتنفيذ مع .NET 1.1 إلى استخدام مكتبة تم تجميعها باستخدام .NET 3.5.

لا يمكنني العثور على مصدر موثوق يفيد أنه لا يمكن تحميل نسختين من وقت تشغيل .NET وتوثيق Microsoft غامض للغاية في هذا الشأن.

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

المحلول

لا - لا يمكنك تحميل CLR في نفس العملية مرتين. انظر الوثائق ل استضافة CLR

كما هو الحال مع الإصدارات السابقة من وقت التشغيل ، تهيئة وظيفة corbindtoruntimeex وقت التشغيل. يمكنك اختيار إصدار وقت التشغيل لتحميله ، ولكن يمكن لعملية استضافة نسخة واحدة فقط.

نصائح أخرى

.NET 4 يعد بتمكين استضافة إصدارات CLR مختلفة في نفس العملية عن طريق في العملية جنبا إلى جنب.

بالنسبة للحالة رقم 1 ، هل هناك أي سبب معين (على سبيل المثال ، كسر التغييرات) والذي يتطلب استضافة المكتبة في وقت التشغيل 1.1؟ هل من الممكن فضح المكتبة عبر خدمة ويب مبللة 1.1 ، ولديك نقطة قابلة للتنفيذ لخدمة الويب بدلاً من ذلك؟ (أو بعض تقنيات النائية الأخرى ، للحصول على المكتبة في عمليتها الخاصة؟)

بالنسبة للحالة رقم 2 ، هل من الممكن إعادة ترجمة التطبيق 1.1 تحت 2.0/3.5 ، بحيث يمكن أن يقيم في نفس العملية؟

على أي حال ، فإن Rob Walker على حق (وأنا أتجه) - لا يمكنك ببساطة استضافة نسختين من وقت التشغيل في نفس العملية. لذلك تحتاج إلى العمل من حوله بطريقة أو بأخرى. أتصور أنه في كلتا الحالتين ، يجب أن يكون المصدر متاحًا ، لذلك يجب أن تلعب إعادة التجميع وإعادة الاختبار.

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