C# Microsoft Interop Word:已装Word但类未注册问题求助
问题分析与解决方案
原异常(RPC_E_CALL_REJECTED)原因
未激活的Word 2013启动时会弹出激活提示窗口,直接阻塞了COM调用的响应流程,导致应用无法正常获取Word实例,触发该异常。
卸载旧版本后出现REGDB_E_CLASSNOTREG的核心问题
1. 注册表残留冲突
卸载Word 2013时,安装程序可能误删或破坏了Word 2021的COM组件注册项,导致系统无法找到Word.Application对应的注册类。
2. 位数不匹配
如果你的应用是32位编译,而机器上安装的是64位Word 2021(或反之),COM组件无法跨位数匹配,会触发类未注册的异常。
3. Office组件损坏
卸载旧版本过程中,可能连带损坏了Word 2021的部分核心组件,导致COM注册信息丢失。
修复步骤
重新注册Word 2021 COM组件:
以管理员身份打开命令提示符,根据Word位数执行对应命令:- 64位Word:
cd "C:\Program Files\Microsoft Office\root\Office16" winword.exe /regserver - 32位Word:
cd "C:\Program Files (x86)\Microsoft Office\root\Office16" winword.exe /regserver
- 64位Word:
匹配应用与Word的位数:
在开发工具中将应用的目标平台设置为与Word一致的位数(x86对应32位Office,x64对应64位Office),重新编译后部署。修复Office 2021安装:
打开「控制面板」→「程序和功能」,找到Microsoft Office 2021,右键选择「更改」,先尝试「快速修复」;若无效,选择「联机修复」。清理残留注册表(谨慎操作):
打开注册表编辑器(运行regedit),删除HKEY_CLASSES_ROOT\Word.Application下的旧版本子项,操作前务必备份注册表,之后重新执行COM注册命令。
内容的提问来源于stack exchange,提问作者andboz
相关产品推荐
相关产品推荐

