C# 初始化VCProjectEngineObject(Microsoft.VisualStudio.VCProjectEngine.dll)时出现错误80040154(类未注册异常) < >我试图运行工具,以便将VisualC++项目转换成MaFag文件。 我试图转换的项目是在VS2008中编写的,因此我使用了对版本9中的Microsoft.VisualStudio.VCProjectEngine.dll的引用

C# 初始化VCProjectEngineObject(Microsoft.VisualStudio.VCProjectEngine.dll)时出现错误80040154(类未注册异常) < >我试图运行工具,以便将VisualC++项目转换成MaFag文件。 我试图转换的项目是在VS2008中编写的,因此我使用了对版本9中的Microsoft.VisualStudio.VCProjectEngine.dll的引用,c#,exception,com,dllregistration,C#,Exception,Com,Dllregistration,它在这一行失败了: VCProjectEngine vcprojEngine = new VCProjectEngineObject(); 除以下情况外: 正在检索的COM类工厂 具有CLSID的组件 {D19A00C4-A7F9-4E14-A5E1-D060B7EB57F3} 由于以下错误而失败: 80040154类未注册 (HRESULT的异常:0x80040154 (REGDB_E_CLASSNOTREG)) 当尝试用regsvr32注册VCProjectEngine.dll时,我得到一

它在这一行失败了:

VCProjectEngine vcprojEngine = new VCProjectEngineObject();
除以下情况外:

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

当尝试用regsvr32注册VCProjectEngine.dll时,我得到一个错误,即未找到入口点DllRegisterServer

有什么想法吗


提前感谢。

没有太多好的理由会失败,尤其是regsvr32步骤。在该dll上运行dumpbin/exports。如果没有看到DllRegisterServer,则说明安装已损坏。它应该有更多的副作用,您将无法再构建C/C++项目


一种标准故障模式是在64位操作系统上运行此操作。这是32位非托管代码,您确实会遇到“类未注册”异常。项目+属性、构建选项卡、将平台目标更改为x86。

问题出在x86目标平台上。非常感谢。刚刚遇到了64位问题。万分感谢@汉斯·帕桑对此还有什么想法吗?我正在为x86平台构建,但仍然收到一个VB6 COM互操作错误。我的构建机器是Widows server 2008 R2,你应该完全大胆地说出关于x86的部分-我打赌99%的时间都是这样@汉斯:所以我的应用程序永远不能像64位进程那样运行?