无法将 System.__ComObject 类型的 COM 对象转换为 IRibbonUI。IID 00c03a7-0000-0000-c000-0000000000046 TYPE_E_LIBNOTREGISTERED 0x8002801d

无法将 System.__ComObject 类型的 COM 对象转换为 IRibbonUI。IID 00c03a7-0000-0000-c000-0000000000046 TYPE_E_LIBNOTREGISTERED 0x8002801d

应用 Microsoft .NET 修补程序或升级并随后降级 Microsoft Office 后,我收到错误:

Unable to cast COM object of type System.__ComObject to IRibbonUI. IID 00c03a7-0000-0000-c000-000000000046 Library not registered TYPE_E_LIBNOTREGISTERED 0x8002801d

在启动 Microsoft Excel 2010 时,在 Invantive Control 的错误窗口中。

使用 Office 2010 安装 Skype for Business 时也会出现类似的错误:

Microsoft.Office.Core.IRibbonUI'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{000C03A7-0000-0000-C000-000000000046}' failed due to the following error: Library not registered. (Exception from HRESULT: 0x8002801D (TYPE_E_LIBNOTREGISTERED)).'

我怎样才能解决这个问题?

答案1

该问题似乎仅当涉及 Office 2010 时才会出现;在 Office 2013 或 2016 上从未出现过该问题。

看来 Microsoft 安装程序取代了注册,但并没有覆盖所有组件,尤其是降级组件。

建议的步骤如下:

  • 确保您拥有经过测试的设备和注册表备份,以便可以恢复到原始情况。
  • 重新安装正确版本的 Visual Studio Tools for Office,例如适用于 Office 2010 的 Visual Studio 工具
  • 重新安装 Invantive ControlInvantive 控制站点
  • 检查问题是否已解决。如果没有,事情会变得更加棘手:
  • 从错误消息中获取 GUID ({000C03A7-0000-0000-C000-000000000046})。
  • 以提升模式打开注册表编辑器。
  • 找到 GUID {000C03A7-0000-0000-C000-0000000000046}。
  • 转到 TypeLib 节点。
  • 从那里复制 GUID ({2DF8D04C-5BFA-101B-BDE5-00AA0044DE52})。
  • 查找 {2DF8D04C-5BFA-101B-BDE5-00AA0044DE52}。
  • 它列出了多个版本号。
  • 确保您拥有经过测试的注册表备份。
  • 删除2.8版本号,保留2.5版本。
  • 重新启动 Excel。
  • 如果这没有帮助,最简单的方法是重新安装 Windows 或使用 Excel 2013 或 2016 进行测试。

相关内容