تصحيح: تتلقى رسالة خطأ عند تشغيل تطبيق يستند إلى 3.5 ضغط ملقم SQL بعد تثبيت الإصدار 32 بت من SQL Server المضغوط الإصدار 3.5 Service Pack 2 على x64 الكمبيوتر

الأعراض

على أجهزة كمبيوتر 64 بت، قد تفشل تطبيقات SQL Server المضغوط ("الاتفاق") على أساس بأحد هذين العرضين التاليين:
العرض الأول
يحاول التطبيق تحميل نسخة ضغط غير متوافق مع الإصدار المثبت على جهاز الكمبيوتر. الإصدارات غير الصحيحة التي يمكن أن تؤدي إلى عدم استقرار التطبيق، وقد تم إحباط تحميل المضغوط.



العرض 2
لا يمكن تحميل التطبيق المكونات الأصلية ل SQL Server المضغوط الذي يتوافق مع موفر ADO.NET.



فيما يلي بعض الاستثناءات الدقيقة المرتبطة بهذه المسائل:

استثناء عدم تطابق الإصدار
اكتشاف بين الثنائيات الأصلية من SQL Server ضغط مما قد يتسبب في وظيفة غير صحيحة وموفر ADO.NET عدم تطابق إصدار الملف. قد يكون هذا بسبب وجود مثيلات متعددة من SQL Server ضغط من الإصدارات المختلفة. الرجاء تثبيت SQL Server ضغط الملفات الثنائية من مطابقة الإصدار [إصدار الملف موفر ADO.NET XXXX، "إصدار الملف الثنائي الأصلية" = = سنة]

غير قادر على تحميل dll استثناء لي "
غير قادر على تحميل DLL 'sqlceme35.dll': تعذر العثور على الوحدة النمطية المحددة. (استثناء من HRESULT: 0x8007007E)

السبب

برمجته المضغوط التطبيقات عادة موفر ADO.NET المضغوط (System.Data.SqlServerCe.dll). يتصل هذا الموفر في تشغيل مع مكونات الاتفاق الأصلي. لتجنب التناقضات المختلفة، موفر ADO.NET المضغوط من إصدار معين التحدث فقط ضغط المكونات الأصلية من نفس الإصدار. فيما يلي بعض نماذج السيناريوهات حيث سيتم تقسيم هذا النهج، والنتيجة ستكون أحد الاستثناءات اثنين السالفة الذكر:

المثال السيناريو 1

تثبيت SQL Server 2008 R2 (تثبيت إصدار 32 بت من SQL Server Compact 3.5 SP2). وبعد ذلك، عند تشغيل تطبيق 64-بت سراً نشر SQL Server المضغوط SP1، فشلها باستثناء "عدم تطابق الإصدار".

سبب الفشل

  • عند تثبيت إصدار 32 بت من SP2 3.5 SQL Server المضغوط، يضيف موفر ADO.NET (System.Data.SqlServerCe.dll) لإصدار 3.5.8080 إلى x86 الأصلية يتم وضع المكونات ضمن المجلد % % Files(x86) البرنامج وذاكرة التخزين المؤقت للتجميع العمومي (GAC).
  • عند تشغيل التطبيق 64 بت الذي نشر SQL Server المضغوط SP1 سراً، تم تحميل موفر ADO.NET من GAC (الإصدار 3.5.8080) ولكن يتم تحميل مكونات 64 بت من مجلد التطبيق الذي يتم إصدار 3.5.5692.0.
  • يوجد عدم تطابق إصدار الذي لم يتم تمكين وفقا للنهج.

سيناريو المثال 2

  • تثبيت x86 إصدار SQL Server Compact 3.5 SP1 على جهاز كمبيوتر 64 بت.
  • ثم تثبيت x64 إصدار SQL Server Compact 3.5 SP1.
  • على نفس الكمبيوتر، تنزيل وتثبيت إصدار 32 بت من SQL Server Compact 3.5 SP2 من الويب.
  • تشغيل تطبيق 64-بت الذي يستخدم SQL Server المضغوط SP1 أو SP2.
  • عند تشغيل التطبيق، فإنه فشل مع "قادر على تحميل dll" استثناء.

سبب الفشل

  1. تثبيت إصدار 32 بت من SQL Server Compact 3.5 SP2 ترقية SQL Server Compact 3.5 SP1 x86 المنشآت إلى SQL Server Compact 3.5 SP2. أنه يؤدي إلى x86 تثبيت مضغوط تختلف عن x64 التثبيت.
  2. عند تشغيل تطبيق 64-بت يستخدم ضغط حزمة الخدمة SP1 أو SP2 على الكمبيوتر، يقوم بتحميل موفر ADO.NET من GAC (الإصدار 3.5.8080). ومع ذلك، تعذر العثور الثنائيات الأصلية من نفس الإصدار على النظام. ولذلك، يطرح الاستثناء.

الحل

في أي لحظة معينة من الزمن، ستكون الحالة الصحيحة لكمبيوتر 64-بت، ل SQL Server المضغوط كالتالي:
  • تثبيت amd64 MSIs سواء x86.
  • كلا من x86 و amd64 MSIs لهما نفس الإصدار.

لذلك، إذا كنت تواجه مشاكل مشابهة، تأكد من أن الكمبيوتر لديه كلا x86 و amd64 MSIs من ضغط مثبتة وهم من نفس الإصدار. في حال لم تكن ثم تثبيت MSIs SP2 المضغوط x86 و x64 من الوصلة التالية حسب الحاجة:

الحالة

أقرت Microsoft أن هذه مشكلة في منتجات Microsoft المسردة في قسم "ينطبق على".
خصائص

رقم الموضوع: 974247 - آخر مراجعة: 13‏/01‏/2017 - المراجعة: 1

تعليقات