我在Windows 7(最终版)开发人员计算机上与VS 2010一起安装了Office 2016预览版。我有以下简单的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仅具有选择要从下载中排除的应用程序的选项,而没有修复现有安装的选项。

最佳答案

我试图通过创建WinForms项目并定位.NET 4.0来尽可能地模仿您的系统。我能够毫无例外地创建Word.Application对象。
我非常确定您是由于Windows注册表损坏而收到了该错误,很可能是Office本身损坏了。

放弃之前,您还可以做三件事:


转到here并按照步骤使用scanreg / fix清理注册表
卸载每个Office产品,打开注册表并删除与Office相关的每个密钥,然后再次安装2016(确保先备份所有数据)
重新安装Windows。


我曾在应用程序支持职位工作过,其中该应用程序通过加载项与Excel和Word高度集成,并且我必须研究并向开发团队(另一家供应商)解释为什么会发生这种情况以及在某些情况下如何解决。
在找到上述步骤1和我对问题的第一条评论中告诉您的步骤之前,每个问题都使用步骤3解决了。

关于c# - Word 2016自动化生成“错误:80080005服务器执行失败”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34053627/

10-14 21:17