قم بتحميل إصدارات متعددة من نفس DLL دون وضعه في GAC

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

  •  19-09-2019
  •  | 
  •  

سؤال

أرغب في تحميل إصدارات مختلفة من نفس DLL داخل نفس العملية. في الوقت نفسه أود تجنب وضع أي منهم في GAC.

أيه أفكار؟

شكرا، krikor.

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

المحلول

نعم، يبدو أنه يجب علي تحميل التجمع يدويا، بطريقة أو بأخرى.

أحد الحلول التي وجدتها هي الاشتراك في حدث Assemblyresolve في AppDomain. يتم رفع هذا الحدث عند عدم العثور على التجمع ويسمح لك بتقديمها يدويا.

  1. Reregister معالج الأحداث مثل هذا

appdomain.currentdomain.assemblyresolve + = myresolveeventhandler؛

التجميع الثابت myresolveeventhandler (كائن المرسل، readveventargs args) {العودة الجمعية. تحميل (@ oldasm asm.dll ")؛ }

  1. بمجرد الوصول إلى التعليمات البرمجية التي تستخدم التعليمات البرمجية المحددة، ستحاول. NENT Framework سيحاول تحميل التجميع، وسوف يتعطل وسيتم استدعاء معالجتك (myresolveeventhandler).

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

شكرا

نصائح أخرى

Activator.CreateInstance. تحقق MSDN للحصول على أمثلة.

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