今日悲伤
{“无法将类型为“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 对象强制转换为接口类型“Microsoft.Office.Interop.Word._Application”。此操作失败的原因是对 IID 为“{00020970-0000-0000-C000-000000000046}”的接口的 COM 组件调用 QueryInterface 因以下错误而失败: 库没有注册。 (异常来自 HRESULT:0x8002801D (TYPE_E_LIBNOTREGISTERED))。”}
我的情况
1.win10+64位
2.重装了Office2016,但之前卸载过专业版office2016以及WPS
解决
重装了WPS,就ok了。
错误原因
.WPS组件跟Office组件冲突了,这玩意{00020970-0000-0000-C000-000000000046}可能是和WPS有关,然后我没卸载干净。重新装了WPS,它就注册好了这个组件,所以不报错了。
参考
非常感谢这篇给我的启发:
C#导入Excel2010出现加载DLL失败或者类库未注册的问题,0x8002801D或者0x80029C4A
以及,大家不确定错误根源的,可以一步步进行尝试:
检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件失败,原因是出现以下错误: 80070005 拒绝访问。
这篇列出了4种方法,当然最简单最粗暴的也是last resort的就是重装系统了。