使用 Microssoft.office.interop 时打印错误

Error Printing When Using Microssoft.office.interop

我通常通过我在 C# 中使用 Office 2013 (Word) 中的互操作开发的应用程序进行打印。然后我安装了 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))。

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

所以发生的事情是你有一个空的更高版本的注册表项,因为它总是选择最高版本,所以它选择了空的。

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

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