it-swarm.asia

تعذر تحميل الملف أو التجميع 'النظام ، الإصدار = 4.0.0.0 ، الثقافة = محايدة ، PublicKeyToken = b77a5c561934e089' أو أحد تبعياته

لدي هذا الاستثناء الذي تم إنشاؤه على بعض أجهزة المستخدم (حوالي 1 من 20):

تعذر تحميل الملف أو التجميع 'النظام ، الإصدار = 4.0.0.0 ، الثقافة = محايدة ، PublicKeyToken = b77a5c561934e089' أو أحد تبعياته. لا يمكن للنظام العثور على الملف المحدد.

لقد وجدت العديد من الإشارات لهذا الخطأ عبر الويب وهذا الموقع ولكن لم يساعدني شيء.

لدي تطبيق إضافي يستخدم WCF للاتصال بالخادم. الوظيفة الإضافية المضمنة مع .NET Framework 3.5 مع VS 2008.

الخطأ قابل للتكرار على أحد أجهزة الاختبار في حساب مستخدم واحد فقط. أقوم بتثبيت تطبيقي ولا يمكنني إعادة إنتاج ذلك إلا من حساب واحد على هذا الجهاز في كل مكان آخر يعمل بشكل جيد. علاوة على ذلك ، يمكن استنساخه فقط مع إصدار واحد فقط من تطبيق المضيف الذي قمت بإنشائه الوظيفة الإضافية لـ (أفترض لأنه يستخدم differnet .NET Frameworks).

لقد راجعت سجلات الصمامات وأرى ما يلي:


Assembly manager loaded from:  C:\Windows\Microsoft.NET\Framework64\v2.0.50727\mscorwks.dll
Running under executable  C:\Program Files\SolidWorks Corp\SolidWorks\sldworks.exe
--- A detailed error log follows. 

=== Pre-bind state information ===
LOG: User = Home\User
LOG: DisplayName = System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
 (Fully-specified)
LOG: Appbase = file:///C:/Program Files/SolidWorks Corp/SolidWorks/
LOG: Initial PrivatePath = NULL
LOG: Dynamic Base = NULL
LOG: Cache Base = NULL
LOG: AppName = NULL
Calling Assembly : System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a.

لذلك ، من خلال بعض الأسباب ، تحاول استخدام أداة تحميل v2.0.50727\mscorwks.dll لتحميل الإصدار = 4.0.0.0 من System.dll. على جهاز الإنشاء ، أشير إلى الإصدار 2.0.0.0 من System.dll

أي مساعدة هي محل تقدير كبير.

شكرا ، أرتيم

30
Tema T.

واجهت نفس المشكلة - يمكن لبعض المستخدمين الانسحاب من بوابة كل شيء على ما يرام. قد يقوم البعض بالسحب والحصول على استثناء مشابه جدًا:

تعذر تحميل الملف أو التجميع '... أو الإصدار = ... أو الثقافة = محايدة أو PublicKeyToken = ...' أو أحد تبعياته. لا يمكن للنظام العثور على الملف المحدد.

في حالتي الخاصة كان AjaxMin ، لذلك بدا الخطأ الفعلي بهذا الشكل ولكن التفاصيل لا تهم:

تعذر تحميل الملف أو التجميع 'AjaxMin ، الإصدار = 4.95.4924.12383 ، الثقافة = محايدة ، PublicKeyToken = 21ef50ce11b5d80f' أو أحد تبعياته. لا يمكن للنظام العثور على الملف المحدد.

اتضح أن ذلك كان نتيجة للإجراءات التالية على الحل:

  1. تم تشغيل حزمة استعادة NuGet للحل.

  2. تمت إضافة مشروع ، وتم تثبيت حزمة Nuget فيه (AjaxMin في هذه الحالة).

  3. تم نقل المشروع إلى مجلد مختلف في الحل.

  4. تم تحديث حزمة Nuget إلى إصدار أحدث.

ببطء ولكن بثبات بدأ هذا الخطأ في الظهور لبعض المستخدمين.

كان السبب هو وجود حزم/مستودعات على مستوى الحلول. احتفظ التكوين بمرجع المشروع القديم ، وأصبح لديه الآن إدخال ثانٍ جديد للمشروع المنقول. وبعبارة أخرى كان هذا قبل reorg:

  <repository path="..\Old\packages.config" />

وهذا بعد reorg:

  <repository path="..\Old\packages.config" />
  <repository path="..\New\packages.config" />

لذا يشير السطر الأول الآن إلى مشروع ، --- أثناء وجوده على القرص ، لم يعد جزءًا من الحل الخاص بي.

أثناء تشغيل Nuget Package Restore ، يتم قراءة كلا الملفين package.config ، حيث أشار كل منهما إلى قائمتهما الخاصة بحزم Nuget وإصدارات الحزمة. حتى يتم تحديث حزمة Nuget إلى إصدار أحدث ، لم تكن هناك أي تعارضات.

بمجرد تحديث حزمة Nuget ، على الرغم من ذلك ، فإن المشروعات النشطة فقط هي التي تم تحديث قوائم المستودعات الخاصة بها. اختار NuGet Package Restore تنزيل إصدار واحد فقط من المكتبة - أول إصدار واجهته في repositories.config ، والذي كان الأقدم. قام المحول البرمجي و IDE بالمتابعة كما لو أنه اختار الإصدار الأحدث. كانت النتيجة استثناءً في وقت التشغيل يقول DLL كان مفقودًا.

الجواب الواضح هو حذف أي أسطر من هذا الملف تشير إلى مشاريع غير موجودة في الحل.

5
Chris Moschini

حصلت على هذا بعد تخفيض مستوى المشروع من .net 4.5 إلى .net 3.5.

لحل اضطررت إلى الدخول في المشروع - الخصائص - نافذة الإعدادات وحذف جميع الإعدادات ، وحفظ المشروع ، والخروج من Visual Studio وإعادة تشغيله ، والعودة إلى المشروع - نافذة الإعدادات - الخصائص ، وإعادة إدخال جميع الإعدادات والإعدادات الافتراضية القيم

2
Rob

أنت تستخدم .net 4؟ - ربما على العملاء هناك فقط ".net framework 4 Client profile" مثبت. محاولة تثبيت الحزمة الكاملة! تحميل هنا

1
Cadburry

هذا عملت لي. انتقل إلى Project-> خصائص-> الهدف الإطار-> تغيير الإطار مثل 3.5 إلى 4.0

0
user3493436

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

<compilation  batch="false" >

هذا يعمل في حالتي. إذا كان لديك بالفعل علامة تجميع في web.config ، فقم بإضافة خاصية batch = "false" فقط إليها.

0
killer

حتى لدي بعض الأشياء الأكثر غرابة ، أستطيع أن أرى أنه لا يوجد ملف dll في GAC من حيث يتم تحميل dll لكن windows> Module يعرض إصدار system.dll = 4.0.0.0 محمل

0
Rajnish

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

apt-get install mono-utils mono-runtime-sgen mono-runtime-common \
                mono-runtime-boehm mono-runtime-dbg mono-xbuild
0
Alexis Wilke

يمكنك تمكين حزم NuGet وتحديث dlls لك. حتى يعمل. أو يمكنك تحديث الحزمة يدويًا من خلال الانتقال إلى مدير الحزمة في مقابلتك إذا كنت تعرف الإصدار الذي تحتاجه لحلك.

0
Rizwan

لقد رأيت ذلك عدة مرات ، ويتم إصلاحه عادة عن طريق تشغيل إصلاح على .NET Framework (أيًا كان الإصدار الذي يحاول التطبيق استخدامه).

0
JoeKreydt

في حالتي ، تمكنت من العثور على مشكلة مع ScriptManager عن طريق تعيين Debug = true في ملف web.config

0
Sofia Khwaja