【发布时间】:2016-03-07 08:05:06
【问题描述】:
我在 Windows 7(终极版)开发人员机器上安装了 Office 2016 预览版以及 VS 2010。我有以下简单的 C# WinForms 应用程序,它尝试通过自动化创建 Word 文档:
using Word = Microsoft.Office.Interop.Word;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
Word.Application word = new Word.Application(); // <- Causes exception
...
}
}
应用程序产生以下错误:
附加信息:检索组件的 COM 类工厂 由于 CLSID {000209FF-0000-0000-C000-000000000046} 失败 以下错误:80080005 服务器执行失败(异常来自 HRESULT: 0x80080005 (CO_E_SERVER_EXEC_FAILURE))。
上述错误的大多数搜索结果都涉及人们试图在实际服务器上运行(早期)版本的 Office 程序的情况。
我错过了什么吗?
PS:Office 2016 本身就是一个奇怪的野兽,它在添加/删除程序中没有条目,它的deployment tool只有选择从下载中排除的应用程序的选项,没有选项用于修复现有安装。
【问题讨论】:
-
如果您之前在同一个 Windows 中安装了任何其他 Office,则很有可能它没有完全卸载或损坏。如果您有任何以前的版本作为第一步,我建议您卸载任何以前的版本。如果问题仍然存在,我建议你打开注册表编辑器,进入 HKLM\Typelib 并搜索“Interop”,每个文件夹应该只有一个文件夹,因为每个文件夹代表一个版本;例如:Word 8.5 > Office 2010、8.6 > 2013
-
@cFrozenDeath 谢谢。我假设您的意思是 HKEY_CLASSES_ROOT,而不是 HKLM?
-
哎呀,是的,我就是这个意思
-
@cFrozenDeath 在出现上述错误之前,我收到“无法转换 COM 对象”错误。正如您所提到的,我通过删除以“00020905-...”开头的 Word 键下多余的“8.6”条目来解决这个问题(这些都以 46 结尾!)。这解决了这个问题(我也提到了这个答案:stackoverflow.com/a/12962795/360840),但紧接着,我开始收到上述(服务器)错误。我猜 Office 2016 认为它在服务器上运行。
-
我的 PC 上安装了 Windows 10、VS2015 和 Office 2016,但从未安装过任何其他 Office。让我安装 Office 工具,看看会发生什么
标签: c# ms-word ms-office office-interop