Не удалось загрузить файл или сборку 'Microsoft.MSHTML ... ошибка проверки строгих имен

Я сделал программу WPF / C#, и я использую интернет-контроль для редактирования WYSIWYG HTML.

это обычная исполняемая программа.

он работает на большинстве компьютеров, однако некоторые компьютеры дают мне следующую ошибку.

не удалось загрузить файл или сборку 'Майкрософт.mshtml, версия=7.0.3300.0, Культура=нейтральный, Значения PublicKeyToken=b03f5f7f11d50a3a "или" одна из его зависимостей. Строгое имя утверждение неудачный.

' Microsoft.библиотеку MSHTML.dll ' файл распространяется с программой. Это со всеми другими необходимыми DLL в той же папке, что и 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:WINDOWSMicrosoft.NETFrameworkv2.0.50727mscorwks.dll
Running under executable  C:Documents and SettingsofficeDesktopDatabaseDATABASE.exe
--- A detailed error log follows. 

=== Pre-bind state information ===
LOG: User = CAMPUSREMOTEoffice
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.

спасибо

4 ответов


убедитесь, что " Microsoft.библиотеку MSHTML.dll ' файл, распространяемый с программой, является файлом PIA, а не файлом Office. Некоторые сайты утверждают, что файлы Office "подписаны с задержкой", а файл PIA (установленный с установкой VS) является подписанной копией. на моем компьютере у меня есть 3 разные версии " Microsoft.библиотеку MSHTML.dll ' файл, (тот же размер файла, но другой контент):

  1. "c:\Program файлы\Microsoft Visual Studio 9.0\средства Visual Studio для Office\PIA\Office11\Microsoft.библиотеку MSHTML.DLL-файл"

  2. "c:\Program файлы\Microsoft Visual Studio 9.0\средства Visual Studio для Office\PIA\Office12\Microsoft.библиотеку MSHTML.DLL-файл"

  3. "c:\Program файлы\Microsoft.NET\основные сборки взаимодействия\Microsoft.библиотеку MSHTML.DLL-файл"

Удалить " Microsoft.библиотеку MSHTML.dll " ссылка из проекта. Используйте вкладку" Добавить ссылку"," .Net", выберите файл PIA, используйте опцию" копировать loacal". (Это сработало для меня . . .)

Атара


Microsoft.библиотеку MSHTML.dll из папки PIA не подписана.
Если вы подписали проект, необходимо взять версию из папки "основные сборки взаимодействия".


Для этого:

1. Удалить ссылку на Microsoft.mshtml (если он есть в вашем проекте)

2. Нажмите "Добавить ссылку" и не выбирайте "расширения", а "обзор" и укажите "C:\Program файлы (x86)\Microsoft.NET\Primary Interop Assemblies" (for .64-битных машинах) - что версия подписана.

3. Изменить свойства (выберите microsoft.ссылка mshtml и нажмите F4), чтобы установить:

внедрить типы взаимодействия=false
Копировать Local=true


4. Перестройте свой проект


первый шаг к отслеживанию этой проблемы-определить, действительно ли это Mcirosoft.библиотеку MSHTML.dll или одна из его зависимостей. Лучший способ сделать это-использовать fuslogvw для отслеживания сборка аварий. Он предоставит подробную информацию о том, какая сборка не работает.

Как только вы deterimen который агрегат терпит неудачу, пожалуйста вывешиваете назад с результаты.

редактировать

Это предупреждающее сообщение предполагает, что операция в конечном итоге удалась. Похоже, в нем нет ошибки.


у меня была такая же проблема, но моя проблема заключалась в использовании TFS Build 2008. В hintpath был родственник и пришлось заменить на точный путь. В противном случае во время сборки он продолжал собирать Office 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>