You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WPF运行报错80040154 Class not registered COM异常如何解决?

问题异常说明

System.Runtime.InteropServices.COMException: 'Retrieving the COM class factory for component with CLSID {9F8D4F16-0F61-4A38-98B3-1F6F80F11C87} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).'

异常原因

该错误的核心原因是项目调用的CLSID为{9F8D4F16-0F61-4A38-98B3-1F6F80F11C87}的COM组件,未在系统与项目进程匹配的架构位下完成注册,具体可分为三类场景:

  • 对应COM组件完全未安装到当前系统,注册表中无相关注册信息
  • COM组件已安装,但注册的架构和项目运行的进程架构不匹配:比如COM是32位版本,项目以64位进程运行,就无法读取到32位注册表的注册信息
  • 手动注册COM组件时用错了注册工具,导致对应架构下没有注册记录

解决方案

  1. 首先确认COM组件的注册状态和架构
    打开系统注册表编辑器,分别查看两个路径下是否存在对应CLSID的项:
  • 64位COM注册路径:HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{9F8D4F16-0F61-4A38-98B3-1F6F80F11C87}
  • 32位COM注册路径:HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Classes\CLSID\{9F8D4F16-0F61-4A38-98B3-1F6F80F11C87}
    如果两个路径都找不到对应CLSID项,说明COM组件未安装,先安装对应组件的官方安装包。
  1. 对齐项目运行架构和COM架构
  • 如果COM是32位版本:将项目平台目标设置为x86,如果使用Any CPU配置,需要勾选「首选32位」选项
  • 如果COM是64位版本:将项目平台目标设置为x64,同时取消勾选「首选32位」选项
    修改配置后需要清理项目、重新生成再运行,避免旧编译缓存影响。
  1. 手动注册COM组件的正确操作
    如果是自行开发的COM组件需要手动注册,要根据组件架构选择对应版本的注册工具,且必须用管理员权限运行CMD执行命令:
  • 注册32位COM:C:\Windows\SysWOW64\regsvr32.exe 你的COM组件完整路径.dll
  • 注册64位COM:C:\Windows\System32\regsvr32.exe 你的COM组件完整路径.dll

常见特殊场景说明

如果调用的是Office相关的COM组件,需要对齐你本地安装的Office架构:绝大多数用户默认安装的是32位Office,此时项目必须设为x86架构才能正常调用,强行使用64位运行就会抛出该异常。

内容的提问来源于stack exchange,提问作者S_K

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 01:39:04