HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))

29

我正在构建一个GIS应用程序,但每当我运行代码时,它都会给我这个错误:

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

此外,在项目属性中,“注册COM互操作”选项被禁用。


2
我尝试了下面建议的两种解决方案,但都没有成功。有人有其他想法吗? - Bob Avallone
2个回答

39

这也可能是使用64位配置构建代码的问题。您可以尝试选择x86作为构建平台来解决此问题。要做到这一点,请右键单击解决方案,然后选择Configuration Manager。从那里,您可以更改项目所使用的32位.dll的Platformx86


我遇到了相反的问题 - 我需要一个64位项目,Any CPUx32都不起作用。 - Mark Ransom
1
我简直不敢相信从“任何 CPU”更改为“x86”会有如此大的差异,但确实如此! - Jon Comtois

17

仅从消息中看,似乎您所引用的一个或多个组件,或它们的依赖项没有正确注册。

如果您知道是哪个组件,可以使用regsvr32.exe进行注册。只需打开命令提示符,转到该组件所在的目录,然后键入 regsvr32 文件名.dll(假设它是dll),如果成功,请尝试再次运行代码,否则请回到这里并报错。

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


1
我有一个 .exe 文件(不是 .dll)。在 Visual Studio 命令提示符中(.exe 文件所在的位置),我运行了 "MyProgram.exe /regsvr"。 - robor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接