Ошибка фабрики COM-класса - PullRequest
0 голосов
/ 28 января 2010

Я получаю следующую ошибку на своей рабочей станции, когда пытаюсь работать с COM-объектом.

Необработанное исключение типа 'System.Runtime.InteropServices.COMException' произошло в CarteGraphInterface.exe

Дополнительная информация: получение Фабрика класса COM для компонента с CLSID {3963F0F8-6B0C-4A65-90F4-F60168044014} не удалось из-за следующей ошибки: 80040154.

Я прочитал несколько вопросов здесь, на SO, и ни один из них не помог. Этот идентификатор не указан нигде в реестре. Это нужно добавить?

Обновление: Немного больше информации. Когда я выбираю «Добавить ссылку ...» в VS2008, там указывается объект (именно так я его и нашел), а источник указывается в виде * .exe. regsrv32 не работает.

Ответы [ 3 ]

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

Возможно, вам нужно зарегистрировать COM DLL, используя

regsvr32.exe /i dllname

Попробуйте сначала, возможно, и посмотрите, имеет ли это значение.

РЕДАКТИРОВАТЬ: Не знаю, используете ли вы это, но COM Explorer может помочь вам. Попробуйте пробную версию, если она поможет вам с этой проблемой.

РЕДАКТИРОВАТЬ: Я пытался узнать больше о коде ошибки, и лучшее, что я мог найти, это это , который поясняет, что это должна быть DLL, которая не зарегистрирована.

0 голосов
/ 21 октября 2010

Ни одно из этих решений не сработало. Я предполагаю, что у них фактически нет API, которые могли бы использоваться с .NET (если вообще)

0 голосов
/ 29 января 2010

Как вы добавили ссылку на свой проект? При работе с COM вы почти всегда должны добавлять ссылку на вкладку «COM» (не в «Browse»), это гарантирует, что вы получите действительную ссылку на зарегистрированный объект, создав новую сборку взаимодействия. Хотя, если у вас есть проблемы с регистрацией, вы, скорее всего, не найдете нужную ссылку на вкладке COM.

Во-первых, для COM-компонента очень странно жить в исполняемом файле (хотя это возможно). Может быть, этот компонент не должен был создаваться из другого приложения, поэтому все регистрационные данные были удалены? Я бы посоветовал связаться с кем бы вы ни получили этот компонент и попросить зарегистрировать dll-версию.

...