32-битное приложение не может найти сборку mshtml при работе на 64-битной машине - PullRequest
0 голосов
/ 10 июня 2009

Я пытаюсь запустить 32-битное приложение (созданное как x86) на 64-битной машине. Я построил его как x86, потому что он использует 32-битный com-объект. Пока я не сделал это, приложение не могло загрузить ком. Теперь он загружает com, но жалуется, что не может найти сборку microsoft.mshtml. Эта сборка используется одной из (.net) зависимостей.

Сообщение об ошибке:

System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.mshtml, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
Couldn't find File name: 'Microsoft.mshtml, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'

Я вижу эту сборку, зарегистрированную как под CLSID, так и под WOW3264NodeCLSID. Однако его нет в каталоге WIndows \ Assembly.

Я попытался скопировать dll с компьютера, на котором я собрал приложение, и поместить в каталог приложения. Затем, когда я попытался запустить приложение, я получил ошибку безопасности о сильном именовании. Я погуглил ошибку и обнаружил, что сборка должна быть добавлена ​​в GAC. Я попытался сделать это, перетащив dll в \windows\assembly, но это тоже не сработало. Это дало мне сообщение об ошибке о закрытом \ открытом ключе.

Я включил ведение журнала привязки, и вот что я получаю:

=== Предварительная привязка информации о состоянии ===

LOG: DisplayName = Microsoft.mshtml, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
 (Fully-specified)
LOG: Appbase = file:///C:/DT/IEService/bin/Debug32bit/
LOG: Initial PrivatePath = NULL
Calling assembly : HTMLConverter, Version=1.0.0.0, Culture=neutral, PublicKeyToken=6ec4c8772a0842ff.

LOG: This bind starts in default load context.
LOG: Using application configuration file: C:\DT\IEService\bin\Debug32bit\ServiceConsole.exe.Config
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v2.0.50727\config\machine.config.
LOG: Post-policy reference: Microsoft.mshtml, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
LOG: The same bind was seen before, and was failed with hr = 0x80070002.

Что мне делать? Любая помощь будет более чем признательна.

1 Ответ

0 голосов
/ 10 июня 2009

Запустите на компьютере fslogvw, чтобы получить дополнительную информацию об ошибке привязки сборки. Это должно помочь устранить причину.

...