初始化VCProjectEngineObject时出现错误80040154(类未注册的异常)(Microsoft.VisualStudio.VCProjectEngine.dll)

时间:2010-10-26 08:12:57

标签: c# exception com dllregistration

我正在尝试运行this工具以将Visual C ++项目转换为makefile。 我正在尝试转换项目的项目是用VS2008编写的,所以我在版本9中使用了对Microsoft.VisualStudio.VCProjectEngine.dll的引用。

这行失败了:

VCProjectEngine vcprojEngine = new VCProjectEngineObject();

有以下例外:

  

检索COM类工厂   具有CLSID的组件   {D19A00C4-A7F9-4E14-A5E1-D060B7EB57F3}   由于以下错误而失败:   80040154类未注册   (HRESULT的例外情况:0x80040154   (REGDB_E_CLASSNOTREG))。

当尝试使用regsvr32注册VCProjectEngine.dll时,出现错误,指出找不到入口点DllRegisterServer。

任何想法??

提前致谢。

1 个答案:

答案 0 :(得分:65)

这种失败的原因并不多,尤其是regsvr32步骤。在该DLL上运行dumpbin / exports。如果您没有看到DllRegisterServer,那么您的安装已损坏。它应该有更多的副作用,你将无法再构建C / C ++项目。

一种标准故障模式是在64位操作系统上运行。这是32位非托管代码,你确实会得到'class not registered'异常。 Project + Properties,Build选项卡,将Platform Target更改为x86。