【问题标题】:Error Printing When Using Microssoft.office.interop使用 Microsoft.office.interop 时打印错误
【发布时间】:2017-08-13 15:45:40
【问题描述】:

我通常通过使用 Office 2013 (Word) 中的互操作在 C# 中开发的应用程序进行打印。然后我安装了office 2007的版本,从那里开始,它不再工作了。这是我的例外:

     您无法在“Microsoft.Office.Interop.Word._Application”接口类型中转换“Microsoft.Office.Interop.Word.ApplicationClass”类型的 COM 对象。此操作失败,因为 IID 接口“{00020970-0000-0000-C000-000000000046}”的 COM 组件上的 QueryInterface 调用因以下错误而失败:加载库/DLL 类型时出错。 (来自 HRESULT 的异常:0x80029C4A (TYPE_E_CANTLOADLIBRARY))。

我无法解决,如果有人可以帮助我,谢谢。

【问题讨论】:

  • 您是否卸载了 Office 2013 版本?
  • 我已经卸载了两次,然后重新安装了
  • 我遇到了类似的问题,解决方案是拥有多个 Office 版本导致需要删除的空注册表项您知道如何检查注册表项吗?
  • 不,请您解释一下,我尝试了一些在论坛中找到的解决方案,但没有成功...
  • 我看的论坛,都指向问题注册表项问题,但我解决不了

标签: c# visual-studio interop office-interop


【解决方案1】:

所以发生的情况是您有一个更高版本的空注册表项,并且因为它总是选择最高版本,所以它使用空的。

因此,您需要进入注册表并删除空版本。为此,请单击 Windows 图标,然后键入 regedit 并按 Enter。然后您应该会看到注册表编辑器进入文件夹 HKEY_CLASSES_ROOT 在其中找到文件夹 TypeLib 并尝试找到键 {00020905-0000-0000-C000-000000000046}(它是 Interop.Word 键)

现在您已经在其中,您应该至少有 2 个文件夹。它们应该被命名为 8.X 如果您单击其中一个,您会在右侧看到其中包含的内容,它将只有一行以(默认)开头。该文件夹是您需要删除的空文件夹。通常最高文件夹是您需要删除的文件夹,因此在 8.6 和 8.7 之间您应该删除 8.7。

【讨论】:

  • 我有一个丢失的键,而不是多个键。如何添加相关的关键人物?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-27
  • 2022-06-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多