Не мог загрузить файл или блок 'Microsoft.mshtml … отказавшая проверка Строгого имени

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

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

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

Не мог загрузить файл или блок 'Microsoft.mshtml, Version=7.0.3300.0, Culture=neutral, 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.

Спасибо

18
задан abatishchev 5 May 2010 в 20:47
поделиться

2 ответа

Убедитесь, что файл '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 Assemblies\Microsoft.mshtml.dll"

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

Atara

19
ответ дан 30 November 2019 в 08:27
поделиться

Я никогда не делал этого без использования этого метода в базовом классе. Я думаю, что добавление «using CLASS:: METHOD» в производный класс даст вам доступ к другой версии перегруженного метода.

class CParent
{
 public:
  void doIt(int x);
};
class CChild : public CParent
{
 public:
  void doIt(int x,int y,int z);

  using CParent::doIt;
};
-121--2449759-

Вы поймали неправильное исключение.

-121--3456779-

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

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

EDIT

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

2
ответ дан 30 November 2019 в 08:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: