如何查找实现COM对象的未注册DLL?C#调用MATLAB报错排查
C#调用MATLAB COM组件报「DLL未注册」的解决方法

一、定位未注册的对应DLL文件
- 先确认部署机是否安装了和开发环境版本完全一致的MATLAB Runtime(MCR),版本不匹配或未安装是此类报错的首要原因。
- 打开部署机的事件查看器,依次进入「Windows日志 > 应用程序」,筛选报错发生时间点的错误日志,日志内会记录未注册COM对象的CLSID编号。
- 按
Win+R输入regedit打开注册表编辑器,全局搜索上一步获取的CLSID,找到对应注册表项后,查看InprocServer32键的数值,就是未注册DLL的完整文件路径。
二、完成DLL注册
- 右键点击命令提示符,选择「以管理员身份运行」
- 若你的DLL是32位版本(对应C#项目编译目标为x86),执行命令:
C:\Windows\SysWOW64\regsvr32.exe <替换为你的DLL完整路径> - 若你的DLL是64位版本(对应C#项目编译目标为x64),执行命令:
C:\Windows\System32\regsvr32.exe <替换为你的DLL完整路径>
小技巧:如果是MATLAB官方提供的COM组件,无需手动逐个注册,直接卸载当前错误版本的MATLAB Runtime,重新安装和开发环境完全同版本的MCR即可,安装过程会自动完成所有关联COM组件的注册操作,避免漏注册其他依赖组件。
内容的提问来源于stack exchange,提问作者mkz
相关产品推荐
相关产品推荐

