مرجع تطبيق ASP.NET إلى التجميع في التجميع الذي تم تحميله برمجيًا

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

  •  03-07-2019
  •  | 
  •  

سؤال

يقوم تطبيق ASP.NET الخاص بي بتحميل تجميع وإنشاء مثيل فئة من كائن بداخله.يحتوي التجميع نفسه على مرجع إلى ملف dll يسمى "Aspose.Cells.dll" والذي يمكنه الوصول إليه دون أي مشاكل ويقع على نفس مسار ملف التجميع نفسه.ومع ذلك، عندما أقوم باستدعاء أسلوب لأحد أساليبه، أحصل على هذا الخطأ:

تعذر تحميل الملف أو التجميع "Aspose.Cells, Version=4.1.2.0, Culture=محايد, PublicKeyToken=9a40d5a4b59e5256" أو أحد تبعياته.

أعتقد أنني بحاجة إلى جعل تطبيق ASP.NET الخاص بي يشير إلى ملف DLL هذا أيضًا ولكن كل ما حاولته حتى الآن قد فشل.لا يوجد ملف DLL التجميعي الذي تم تحميله ضمن جذر تطبيق الويب، وآمل ألا يكون كذلك.

يمكنني تحميل التجميع مثل هذا:

Assembly asm = Assembly.LoadFile(@"D:\Dev\EasyFlow\Plugins\ImportExportLibrary\bin\Debug\Aspose.Cells.dll");

ولكن لا أستطيع استخدامه مثل هذا:

AppDomain newDomain = AppDomain.CreateDomain("testAspose");
Assembly asm = newDomain.Load(System.IO.File.ReadAllBytes(@"D:\Dev\EasyFlow\Plugins\ImportExportLibrary\bin\Debug\Aspose.Cells.dll"));

هل هناك طريقة افضل لفعله؟

تحديث:

شكرا لردودكم.

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

ومع ذلك، AssemblyResolve يبدو الحدث مثيرًا للاهتمام وسأحاول تجربته لاحقًا.

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

المحلول

هناك بضعة طرق لفعل هذا.تم وصف طريقة واحدة في مقالة قاعدة المعرفة Microsoft "كيفية تحميل تجميع في وقت التشغيل موجود في مجلد ليس مجلد سلة المهملات الخاص بالتطبيق".إنه يوفر طريقة جيدة خطوة بخطوة لكيفية القيام بذلك.

نصائح أخرى

ويمكنك نسخ التجميع التابع إلى مجلد سلة أو تثبيته في GAC.

وأنا أفكر يمكنك إضافة مراجع التجميع إلى الملف web.config، في المقطع <تجميع> و، كما يلي:

<compilation debug="true">
  <assemblies>
     <add assembly="Aspose.Cells, Version=4.1.2.0, Culture=neutral,  PublicKeyToken=9a40d5a4b59e5256"/>
  </assemblies>
</compilation>

وأنا لست متأكدا تماما هذا العمل، وأنه قد تتطلب دخول المقابلة لWeb.config في عقدة تحت <التكوين>.

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