2009-08-20 3 views
1

Ok, эта строка кода:Interop.MSXML2 бросает исключения из-за того, что его не зарегистрировали, НО ЭТО ВОСПРОИЗВЕДЕНИЕ!

XMLHTTP40 http = new XMLHTTP40(); 

Бросает System.Runtime.InteropServices.COMException и жалуется, что:

Retrieving the COM class factory for component with CLSID {88D969C5-F192-11D4-A65F-0040963251E5} failed due to the following error: 80040154.

Я гугле, что и я предполагаю, что DLL должна быть зарегистрирована, поскольку его COM DLL. Это хорошо, но когда я пытаюсь зарегистрировать его, я получаю эту ошибку:

C:\some\directory\path\etc\Interop.MSXML2.dll was loaded, but the DllRegisterServer entry point was not found.
This file can not be registered.

Видимо, это работает на другом поле, ребята (он написал код, так что да ..: P). Этот COM-объект не отображается в моем списке доступных ссылок COM, поэтому я просто ссылаюсь на DLL, которая находится в каталоге bin \ Debug проекта. Когда я добавляю ссылку на эту DLL в свой проект, я получаю доступ ко всем символам в VisualStudio. Мне интересно, есть ли что-то, что я могу установить, чтобы зарегистрировать DLL и показать его в моем списке объектов COM, которые я могу ссылаться? Я установил то, что я считал библиотекой MSXML 4.0, но когда я смотрел в каталог, там ничего не было.

Любые идеи?

ответ

5

Для этого вам необходимо установить MSXML4 на свою коробку. Интерактивная dll не содержит кода во время выполнения, она помогает .NET общаться с MSXML4.

Однако почему бы вам не использовать пространство имен System.Xml вместо использования COM-компонента?

0

Вам необходимо зарегистрировать (regsvr32) msxml4.dll, а не сборку interop. msxml4.dll - COM-сервер.

+0

Это технически правильный ответ. Проблема в том, что это уже должно быть зарегистрировано, и проблема, с которой я столкнулся, - это попытаться зарегистрировать DLL Interop, которая скомпилируется для взаимодействия с COM-библиотекой. Тем не менее, я просто переписал свой интерфейс с помощью 'System.XML', и теперь мне вообще не нужно иметь дело с COM. Благодарю. – DJTripleThreat