Не удалось загрузить файл или сборку 'Microsoft.mshtml ... Ошибка проверки строгого имени - PullRequest
18 голосов
/ 15 января 2010

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

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

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

Не удалось загрузить файл или сборку Microsoft.mshtml, версия = 7.0.3300.0, Culture = нейтрально, 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:\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.

Спасибо

Ответы [ 4 ]

19 голосов
/ 09 марта 2010

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

  1. "c: \ Program Files \ Microsoft Visual Studio 9.0 \ Инструменты Visual Studio для Office \ PIA \ Office11 \ Microsoft.mshtml.dll"

  2. "c: \ Program Files \ Microsoft Visual Studio 9.0 \ Инструменты Visual Studio для Office \ PIA \ Office12 \ Microsoft.mshtml.dll"

  3. "c: \ Program Files \ Microsoft.NET \ Первичные сборки взаимодействия \ Microsoft.mshtml.dll"

Удалить ссылку «Microsoft.mshtml.dll» из проекта. Используйте «Добавить ссылку», вкладку «.Net», выберите файл PIA, используйте опцию «Копировать локально». (У меня это сработало ...)

Атар

4 голосов
/ 20 апреля 2015

Microsoft.mshtml.dll из папки PIA не подписан.Если вы подписали проект, вы должны взять версию из папки «Основные сборки взаимодействия». Для этого:1. Удалите ссылку на Microsoft.mshtml (если она есть в вашем проекте)2. Нажмите «Добавить ссылку», а затем НЕ выбирайте «Расширения», а «Обзор» и укажите «C: \ Program Files (x86) \ Microsoft.NET \ Первичные сборки взаимодействия» (для 64-битных компьютеров) - эта версияподписано3. Отредактируйте свойства (выберите ссылку на microsoft.mshtml и нажмите F4), чтобы установить: Типы вставок взаимодействия = falseКопировать Local = true 4. Перестройте свой проект

2 голосов
/ 15 января 2010

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

Как только вы определите, какая сборка не удалась, пожалуйста, отправьте результаты с результатами.

EDIT

В этом предупреждающем сообщении указывается, что операция в конечном итоге завершилась успешно. Кажется, в нем нет ошибки.

1 голос
/ 18 декабря 2010

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