لم يستطع تحميل الملف أو التجميع 'microsoft.mshtml ... فشل التحقق من الاسم القوي

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

  •  20-09-2019
  •  | 
  •  

سؤال

لقد صنعت برنامج WPF/C# وأنا أستخدم التحكم في الإنترنت لتحرير WYSIWYG HTML.

إنه برنامج قابل للتنفيذ منتظم.

إنه يعمل على معظم أجهزة الكمبيوتر ، لكن بعض أجهزة الكمبيوتر تعطيني الخطأ التالي.

لا يمكن تحميل الملف أو التجميع "microsoft.mshtml ، الإصدار = 7.0.3300.0 ، الثقافة = محايد ، publickeytoken = b03f5f7f11d50a3a 'أو واحدة من تبعياتها. فشل التحقق من صحة الاسم القوي.

يتم توزيع ملف "microsoft.mshtml.dll" مع البرنامج. إنه مع كل DLLs المطلوبة الأخرى في نفس المجلد مثل ملف EXE.


هنا هو الإخراج من Fuslogvw

*** Assembly Binder Log Entry  (1/14/2010 @ 6:36:51 PM) ***

The operation failed.
Bind result: hr = 0x80070002. The system cannot find the file specified.

Assembly manager loaded from:  c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\mscorwks.dll
Running under executable  C:\Documents and Settings\office\Desktop\Database\DATABASE.exe
--- A detailed error log follows. 

=== Pre-bind state information ===
LOG: User = CAMPUSREMOTE\office
LOG: DisplayName = Microsoft.mshtml, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
 (Fully-specified)
LOG: Appbase = file:///C:/Documents and Settings/office/Desktop/Database/
LOG: Initial PrivatePath = NULL
LOG: Dynamic Base = NULL
LOG: Cache Base = NULL
LOG: AppName = DATABASE.exe
Calling assembly : ChabadOnCampusMainFrontEnd, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null.
===
LOG: Start binding of native image Microsoft.mshtml, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a.
WRN: No matching native image found.

شكرًا

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

المحلول

تحقق من أن ملف "microsoft.mshtml.dll" ، ويتم توزيعه مع البرنامج هو ملف PIA وليس ملف Office. تدعي بعض المواقع أن ملفات Office "موقعة تأخير" وملف PIA (المثبت مع تثبيت VS) هو نسخة موقعة. على جهاز الكمبيوتر الخاص بي ، لدي 3 إصدارات مختلفة من ملف "microsoft.mshtml.dll" ، (نفس حجم الملف ، ولكن محتوى مختلف):

  1. "C: Program Files Microsoft Visual Studio 9.0 Visual Studio Tools for Office Pia Office11 Microsoft.mshtml.dll"

  2. "C: Program Files Microsoft Visual Studio 9.0 Visual Studio Tools for Office Pia Office12 Microsoft.mshtml.dll"

  3. "C: Program Files Microsoft.net Primary interop sexplies microsoft.mshtml.dll"

قم بإزالة مرجع "Microsoft.mshtml.dll" من المشروع. استخدم علامة التبويب "إضافة مرجع" ، ".NET" ، حدد خيار PIA ، استخدم "Copy Loacal". (عملت معي . . .)

أتارا

نصائح أخرى

لم يتم توقيع Microsoft.mshtml.dll من مجلد PIA.
إذا كنت قد وقعت مشروعًا ، فيجب عليك أخذ الإصدار من مجلد "التجميعات الأساسية".


للقيام بذلك:

1. قم بإزالة الإشارة إلى microsoft.mshtml (إذا كان لديك واحد في مشروعك)

2. انقر فوق "إضافة مرجع" ولا يمكنك تحديد "امتدادات" ولكن "تصفح" وأشار إلى "C: Program Files (x86) microsoft.net primary interop insplies" (لآلات .64 بت) - هذا الإصدار تم توقيعه.

3. تحرير الخصائص (حدد مرجع microsoft.mshtml واضغط على F4) من أجل تعيين:

تضمين أنواع interop = false
نسخ محلي = صحيح


4. إعادة بناء مشروعك

تتمثل الخطوة الأولى لتتبع هذه المشكلة في تحديد ما إذا كانت McIrosoft.mshtml.dll أو واحدة من تبعياتها. أفضل طريقة للقيام بذلك هي استخدام fuslogvw لتتبع فشل تحميل التجميع. سيوفر معلومات مفصلة حول أي تجميع تفشل.

بمجرد أن تتراجع عن التجميع الذي يفشل ، يرجى نشر النتائج.

تعديل

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

واجهت نفس المشكلة أيضًا ، لكن مشكلتي كانت تستخدم TFS Build 2008. كان Hintpath نسبيًا وكان لا بد من تغييره إلى المسار الدقيق. وإلا أثناء البناء ، استمر في التقاط المكتب mshtml.dll

<HintPath>..\..\..\..\..\..\..\..\Program Files\Microsoft.NET\Primary Interop Assemblies\Microsoft.mshtml.dll</HintPath>

<HintPath>C:\Program Files\Microsoft.NET\Primary Interop Assemblies\Microsoft.mshtml.dll</HintPath>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top