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

rke*_*erm 33 c# com exception dllregistration

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

它失败了:

VCProjectEngine vcprojEngine = new VCProjectEngineObject();
Run Code Online (Sandbox Code Playgroud)

有以下例外:

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

当试图用regsvr32注册VCProjectEngine.dll时,我收到一个错误,即找不到入口点DllRegisterServer.

任何的想法??

提前致谢.

Han*_*ant 65

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

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

  • x86目标平台就是问题所在.谢谢! (10认同)
  • 关于x86,你应该完全大胆那个部分 - 我打赌99%的时间就是这样! (4认同)
  • 刚遇到64位问题.太感谢了! (2认同)
  • @hans:所以我的应用程序永远不会像64位进程一样? (2认同)