Ошибка 80040154 (исключение класса не зарегистрировано) при инициализации VCProjectEngineObject (Microsoft.VisualStudio.VCProjectEngine.dll) - PullRequest
33 голосов
/ 26 октября 2010

Я пытаюсь запустить этот инструмент для преобразования проекта Visual C ++ в make-файл. Проект, который я пытаюсь преобразовать, написан в VS2008, поэтому я использую ссылку на Microsoft.VisualStudio.VCProjectEngine.dll из версии 9.

Ошибка в этой строке:

VCProjectEngine vcprojEngine = new VCProjectEngineObject();

со следующим исключением:

Получение фабрики класса COM для компонент с CLSID {D19A00C4-A7F9-4E14-A5E1-D060B7EB57F3} не удалось из-за следующей ошибки: 80040154 Класс не зарегистрирован (Исключение из HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).

При попытке зарегистрировать VCProjectEngine.dll в regsvr32 я получил сообщение об ошибке, что точка входа DllRegisterServer не найдена.

Есть идеи ??

Заранее спасибо.

1 Ответ

65 голосов
/ 26 октября 2010

Существует не так много веских причин, по которым это может произойти, особенно шаг regsvr32.Запустите dumpbin / exports на этой DLL.Если вы не видите DllRegisterServer, значит, у вас поврежденная установка.У него должно быть больше побочных эффектов, вы больше не сможете создавать проекты на C / C ++.

В одном стандартном режиме отказа это выполняется в 64-битной операционной системе.Это 32-битный неуправляемый код, вы действительно получите исключение «класс не зарегистрирован».Project + Properties, вкладка Build, измените Target Platform на x86.

...