【问题标题】:HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))HRESULT:0x80040154(REGDB_E_CLASSNOTREG))
【发布时间】:2011-03-01 12:42:55
【问题描述】:

我正在构建一个 GIS 应用程序,但每当我运行代码时都会出现此错误

System.Runtime.InteropServices.COMException 未处理 由于以下错误,检索具有 CLSID {FBF5715D-A05D-11D4-A64C-0008C711C8C1} 的组件的 COM 类工厂失败:80040154 未注册类(HRESULT 异常:0x80040154 (REGDB_E_CLASSNOTREG))。

另外,在项目属性中,注册 COM 互操作的选项被禁用。

【问题讨论】:

  • 我尝试了以下建议的两种解决方案均无济于事。有人有其他想法吗?

标签: c# .net windows com


【解决方案1】:

这也可能是使用64 bit 配置构建代码的问题。您可以尝试选择x86作为构建平台,可以解决这个问题。为此,请右键单击解决方案并选择 Configuration Manager 从那里您可以将使用 32 位 .dll 的项目的 Platform 更改为 x86

【讨论】:

  • 我遇到了同样的问题 - 我需要一个 64 位项目,Any CPU 和 x32 不起作用。
  • 我无法相信从 'Any CPU' 更改为 'x86' 会有很大的不同,但它确实做到了!
【解决方案2】:

只看消息,听起来您引用的一个或多个组件,或者它们的一个或多个依赖项未正确注册。

如果你知道它是哪个组件,你可以使用 regsvr32.exe 来注册它,只要打开一个命令提示符,进入组件所在的目录并输入regsvr32 filename.dll(假设它是一个 dll),如果它有效,尝试再次运行代码,否则返回此处并显示错误。

如果您不知道它是哪个组件,请尝试重新安装/修复 GIS 软件(我假设您已经安装了一些包含您尝试使用的组件的 GIS 软件)。

【讨论】:

  • 我有一个 .exe(不是 .dll)。从 Visual Studio Cmd 提示符(.exe 所在的位置)我运行“MyProgram.exe /regsvr”
猜你喜欢
  • 2013-04-11
  • 2017-07-09
  • 1970-01-01
  • 2014-02-13
  • 1970-01-01
  • 2019-09-01
  • 2019-06-01
相关资源
最近更新 更多