今天在使用 PowerPoint 时,(在遭遇了各种令人抓狂的奇葩问题之后,又)出现了如下提示:
无法将类型为“Microsoft.Office.Interop.PowerPoint.ApplicationClass”的 COM 对象强制转换为接口类型“Microsoft.Office.Interop.PowerPoint._Application”。此操作失败的原因是对 IID 为“{91493442-5A91-11CF-8700-00AA0060263B}”的接口的 COM 组件调用 QueryInterface 因以下错误而失败: 库没有注册。 (异常来自 HRESULT:0x8002801D (TYPE_E_LIBNOTREGISTERED))。
英文版的错误提示如下:
Unable to cast COM object of type ‘Microsoft.Office.Interop.PowerPoint.ApplicationClass’ to interface type ‘Microsoft.Office.Interop.PowerPoint._Application’. This operation failed because the QueryInterface call on the COM component for the interface with IID ‘{91493442-5A91-11CF-8700-00AA0060263B}’ failed due to the following error: Library not registered. (Exception from HRESULT: 0x8002801D (TYPE_E_LIBNOTREGISTERED)).
搜了半天,没搜到 PowerPoint 的内容,倒是发现不少人的 Word、Excel、Outlook 等也出现了类似的情况。最后,判断出现这种错误的原因是:
曾经装过 Office 2013,后来又卸载了,但是微软的卸载程序卸得不干净,在注册表中留下了许多残余项目,当程序去调用 Office 组件时,它们根据注册表的记录,试图去调用 Office 2013 的库,但那些库已经不存在了,所以就报错。
知道了原因,解决办法就很显然了:删除注册表中的残余项目。
然而,要找到到底是注册表的哪个项目,真是废了我半天劲。中间的无数艰辛此处就略过不表了,最后,让我终于能用的动作是删除了如下的项:
HKEY_CLASSES_ROOT\TypeLib\{91493440-5A91-11CF-8700-00AA0060263B}\2.b
这个项展开,里面有个键名称是“PrimaryInteropAssemblyName”,数值为“Microsoft.Office.Interop.PowerPoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71E9BCE111E9429C”,就是它在作祟。
把整个“2.b”(好个 2b 的名字……)删掉,或者不敢删的话,给它改个名,就行了。
不过,注册表中还有许多类似的项目,在删除这个之前,我还删了好几个,不知道是不是也起了作用。(我每删一个就试一次,删掉这个“2.b”才终于成功了,之前删的那些可能有用也可能没用。)
建议凡是有“Microsoft.Office.Interop.PowerPoint, Version=15.0.0.0”的都可以删了,因为 version 15 就是 2013 版,既然我们已经卸载了 Office 2013,这些项目就完全没用了。
不得不骂一句微软,你自家的操作系统自家的程序,连个卸载程序都做不好,留那么多垃圾!
网上还有些人提出一些解决办法,比如重启电脑、在“添加、删除程序”里选择“修复 Office”等等,经过实验在我这全都没用,唯有清理注册表痕迹才是最佳办法。
如果你安装过其他版本的 Office 出现问题,也可以用类似办法解决。注册表里只留你当前安装的那个版本的信息,其他的删掉即可。
本文作者:Betty | 本文地址: https://myfairland.net/office-library-not-registered/
本站文章除特殊标明者外均为原创,版权所有,如需转载,请以超链接形式注明作者和原始出处及本声明
国内的话感觉 wps 就非常够用了。
开始是用 WPS 的,后来遇到一个只有微软 PowerPoint 才有的功能……
这个倒是真心了,有些功能只有官方 office 套件才有救比较尴尬。
嗯,WPS 还需要努力啊
用那些清理软件清理无效注册表会不会有用?
当时我没想到诶……说不定有用~
刚用 360 的注册表清理工具查找了一下(360 的东西比较近,不用去找别的清理软件了……),找出来一百多个 Silverlight 的残余(微软我真服了你了……),但是 Office 的一个都没找出来……
哈哈。也许 office 的项目被手动清理干净了
没有……我手动清理的时候看到了好多 Excel 和 Word 2013 的残余,我估计和 PowerPoint 没关系,就没删,结果 360 一个都没找出来……也许换个别的更好的注册表清理工具会有用吧 :)
微软总是会有一些比较弱智的毛病
2013其实还是挺好用的,买个office365全家都能用,还有20G的skydrive
只能家用,在工作中用还是非法的
那完蛋了,照这种说法我早就非法使用这个半年了……虽然这个东西在国内花钱买的人真心不多,有一次产品出问题打微软的客服电话是秒通啊………
哈哈,享受正版服务感觉应该挺不错~
话说微软从这个软件里还真赚了不少钱。
是啊,微软最赚钱的部门应该就是 Office 了
谢谢了,我也遇到跟你一样的问题,也按你的方案解决了。
很好的解决了我的问题 ,谢谢!!
我的是2.a诶,一样吗