【发布时间】:2010-10-27 23:26:42
【问题描述】:
我有一个 C# 程序,它执行一些 Word 和 Excel 自动化,它使用 Office 2003 主互操作程序集。我部署它的方式是将 Interops 包含在 bin 中,我让我的程序从那里引用它,而不是从 GAC 引用它(不是很专业,但它工作了几年)。最近在 3 台机器上安装了 office 2007 兼容包,现在当我的软件尝试调用 Word 或 Excel 时,我收到一个错误:
无法将 Microsoft.Office.Interop.Word.ApplicationClass 类型的 COM 对象转换为接口类型 Microsoft.Office.Interop.Word.Application,此操作失败,因为对具有 IID { 的接口的 COM 组件调用 QueryInterface 00020970-0000-0000-C000-000000000046} 由于以下错误而失败:库未注册。 (来自 HRESULT 的异常:0x8002801D (TYPE_E_LIBNOTREGISTERED))
经过一番搜索,我注意到安装兼容包 Word11 和 Word12 都安装在 GAC 中,与 Excel 相同。
我试图让我的程序引用 GAC 中的 Word11 互操作,但仍然没有帮助。 我卸载了 Word12 互操作,但仍然没有帮助。 似乎安装它似乎改变了一些注册表设置或我的软件混淆的东西找不到正确的库。
有人有什么想法吗?
【问题讨论】:
标签: pia office-automation word-automation