装完wps卸载后,C#调用office无法正常打印,报错:无法将类型为“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 对象强制转换为接口类型“Microsoft.Office.Interop.Word._Application”。此操作失败的原因是对 IID 为“{00020970-0000-0000-C000-000000000046}”的接口的 COM 组件调用 QueryInterface 因以下错误而失败: 库没有注册。 (异常来自 HRESULT:0x8002801D(TYPE_E_LIBNOTREGISTERED))。
在网上找了好多方法都无法解决,有个重装wps是比较靠谱的,但卸载后又不行了,只能同时装着wps和office才行,这对于强迫症的我来说,实在受不了,反反复复重装了无数次office,把wps自动创建的任务计划也删除了,最后想到一个办法,既然找不到这个ID的库,那直接把这个ID指向office不就可以了?
于是打开注册表修改office的注册表HKEY_CLASSES_ROOT\\ WOW6432Node \\TypeLib\\中00020905-0000-0000-C000-000000000046为00020970-0000-0000-C000-000000000046,代码调试通过,可以正常使用了
猜测应该是wps修改了调用的ID名称所致,但不知道怎么把ID名称怎么改过来,那只有把office的ID名称改成现在所调用的了
这问题在网上找了好几天都没有找到解决方案,所以现在分享给大家