تظهر لي رسالة الخطأ "جرت محاولة لتحميل برنامج بتنسيق غير صحيح" في مشروع النسخ المتماثل لـ SQL Server

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

  •  09-06-2019
  •  | 
  •  

سؤال

الخطأ الدقيق هو كما يلي

لا يمكن تحميل الملف أو التجميع 'microsoft.sqlserver.replication ، الإصدار = 9.0.242.0 ، الثقافة = محايد ، publickeytoken = 89845dcd8080cc91 "أو واحدة من تبعياتها.تم إجراء محاولة لتحميل برنامج بتنسيق غير صحيح.

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

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

المحلول 2

لقد وجدت الحل.لقد قمت مؤخرًا بترقية جهازي إلى Windows 2008 Server 64 بت.تمت كتابة مساحة الاسم SqlServer.Replication لمنصات 32 بت.كل ما كنت بحاجة إلى القيام به لتشغيله مرة أخرى هو تعيين النظام الأساسي المستهدف في خصائص بناء المشروع على X86.

نصائح أخرى

ال الجواب بواسطة أصلع ما يلي صحيح، ولكن قد تحتاج أيضًا إلى تمكين تطبيقات 32 بت في AppPool الخاص بك.

مصدر: http://www.alexjamesbrown.com/uncategorized/could-not-load-file-or-assembly-chilkatdotnet2-or-one-of-its-dependeency-an-attempt-was-made-to-load-a- برنامج ذو تنسيق غير صحيح /

أثناء إعداد تطبيق للتشغيل على جهازي المحلي (يعمل بنظام التشغيل Vista 64 بت)، واجهت هذا الخطأ:

لا يمكن تحميل الملف أو التجميع ChilkatDotNet2 أو واحدة من تبعياتها.تم إجراء محاولة لتحميل برنامج بتنسيق غير صحيح.

من الواضح أن التطبيق يستخدم مكونات الشيلكات, ، ولكن يبدو أن الإصدار الذي نستخدمه هو الإصدار 32 بت فقط.

لحل هذا الخطأ، قمت بتعيين تجمع التطبيقات الخاص بي في IIS للسماح بتطبيقات 32 بت.افتح IIS Manager، وانقر بزر الماوس الأيمن على تجمع التطبيقات، وحدد الإعدادات المتقدمة (انظر أدناه)

enter image description here

ثم قم بتعيين "تمكين تطبيقات 32 بت" على True.

enter image description here

كله تمام!

قم بتغيير قيمة "هدف النظام الأساسي" في صفحة خصائص مشروع الويب الخاص بك إلى Any CPU.

enter image description here

انتقل إلى IIS -> تجمع التطبيقات -> إعدادات مقدمة -> تمكين تطبيقات 32 بت

لقد واجهنا المشكلة مؤخرًا عند محاولة تشغيل التعليمات البرمجية من Visual Studio.في هذه الحالة عليك أن تفعل
الأدوات > الخيارات > المشاريع والحلول > مشاريع الويب وحدد مربع الاختيار "استخدام الإصدار 64 بت من IIS Express لمواقع الويب والمشاريع".

بالنسبة لأولئك الذين يحصلون على هذا الخطأ في أسب.نت إم في سي 3 المشروع داخل Visual Studio نفسه:

في تطبيق ASP.NET MVC 3 الذي أعمل عليه، حاولت إضافة مرجع إلى Microsoft.SqlServer.BatchParser إلى مشروع لحل مشكلة حيث كان مفقودًا على خادم النشر.(يستخدم تطبيقنا SMO؛كان الإصلاح الصحيح هو تثبيت SQL Server Native Client وشيئين آخرين على خادم النشر.)

حتى بعد أن قمت بإزالة المرجع إلى BatchParser، استمر ظهور الخطأ "جرت محاولة..."، بالإشارة إلى BatchParser DLL، في كل صفحة ASP.NET MVC 3 قمت بفتحها، وأعقب هذا الخطأ عشرات من تحليل الصفحات أخطاء.

إذا حدث هذا لك، فقم بإجراء بحث عن ملف ومعرفة ما إذا كان ملف DLL لا يزال موجودًا في أحد مجلدات ‎\bin الخاصة بمشروعك. حتى إذا قمت بإعادة البناء، فإن Visual Studio لا يقوم بالضرورة بمسح كل شيء في كافة المجلدات \bin الخاصة بك.عندما قمت بحذف ملف DLL من سلة المهملات وقمت بإنشائه مرة أخرى، اختفى الخطأ.

لقد حصلت على هذا في تطبيق MVC5 في نظام التشغيل Windows 10 مقابل IIS Express.كان الحل الخاص بي هو ما يلي:

  • الأدوات =>
    • الخيارات =>
      • المشاريع والحلول =>
        • مشاريع الويب =>
          • استخدم الإصدار 64 بت من IIS Express لمواقع الويب والمشاريع

قم بتغييره إلى 32 بت (صحيح) وهو يعمل

إذا حصلت على هذا الطول فلا يمكن أن يكون أقل من الصفر.اسم المعلمة:مشكلة الطول في تكوين خادم iis، قم بالشيء البسيط، قم بتغيير سلسلة الاتصال في ملف web.config مثل اسم خادم SQL الخاص بك واسم الخادم وأعد تشغيل iis ثم حاول تحميل الصفحة التي تعمل

لو النشر في فيجوال ستوديو 2012 عند حدوث خطأ، حاول إلغاء تحديد "التحويل أثناء النشر" الخيار في معالج النشر.

Un-check

في تطبيق نموذج Windows ، أقوم بذلك ، انقر بزر الماوس الأيمن على المشروع-> الخصائص-> Build-> تحقق من خانة الاختيار تفضيل 32 بت.شكرا لكم جميعا

  1. حذف دليل اختبار temp الموجود هنا C: Users (user) appdata local temp visualStudiotExplorerExtensions

  2. قم بتعيين كافة المشاريع إلى x64 في Visual Studio

  3. قم بتعيين بنية المعالج الافتراضية على x64 (اختبار/اختبار الإعدادات/بنية المعالج الافتراضية).

تأكد من تنظيف ملف الحل. آمل أن يساعد هذا!

لقد نجح تغيير Target Framework في خصائص المشروع من .NET Framework 4.7.1 إلى 4.6.2 بالنسبة لي.

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