首页 > 解决方案 > 使用 Microsoft.Office.Interop.Excell dll 的 C# 应用程序在安装 Windows 受信任的应用程序并安装操作系统时抛出异常(错误:80080005)

问题描述

问题: 我在运行在 VS 2013 中创建的 C#应用程序时在 Win10 PC 中遇到问题。该应用程序在尝试创建 excel 实例时总是抛出异常。Microsoft.Office.Interop.Excel 被添加到项目参考(:\Program Files (x86)\Microsoft Visual Studio 12.0\Visual Studio Tools for Office\PIA\Office15\Microsoft.Office.Interop.Excel.dll)

获得以下异常:

由于以下错误,检索具有 CLSID {00024500-0000-0000-C000-000000000046} 的组件的 COM 类工厂失败:80080005 服务器执行失败(来自 HRESULT 的异常:0x80080005 (CO_E_SERVER_EXEC_FAILURE))

从事件查看器中,我看到与 excel.exe 版本 16 bing 相关的错误,称为:

Faulting application name: EXCEL.exe, version: 16.0.8528.2136, time stamp: 0x59d6c372
Faulting module name: KERNELBASE.dll, version: 10.0.16299.371, time stamp: 0xee297154
Exception code: 0xc06d007f
Fault offset: 0x00103ef2
Faulting process id: 0x2c8c
Faulting application start time: 0x01d41f1db8e05601
Faulting application path: C:\Program Files\WindowsApps\Microsoft.Office.Desktop.Excel_16000.8528.2136.0_x86__8wekyb3d8bbwe\Office16\EXCEL.exe
Faulting module path: C:\windows\System32\KERNELBASE.dll
Report Id: 5c23fa18-770c-4233-b803-e57c2bf68174
Faulting package full name: Microsoft.Office.Desktop_16000.8528.2136.0_x86__8wekyb3d8bbwe
Faulting package-relative application ID: Excel

代码片段: 应用程序正在尝试创建 Microsoft.Office.Interop.Excel.Application 的实例:

    public ExcelReader()
    {
        try
        {
            m_excelApplication = new Microsoft.Office.Interop.Excel.Application();
        }
        catch(System.Exception Exp)
        {
            MessageBox.Show( Exp.Message );
        }
    }

环境详细信息: 在操作系统安装过程中,默认安装了一个称为受信任应用程序的东西。我们可以在 Windows 选项中看到与 Excel 2016、Word 2016 等相关的图标。但是在我的机器上,在全新安装操作系统后只安装了 Office 2013(64 位)。我在“C:\Program Files\Microsoft Office\Office15\EXCEL.EXE”中有 MS Office 2013 的 exe

为什么应用程序启动时调用 excel.exe 版本 16(C:\Program Files\WindowsApps)

在安装了 MS office 2016、MS office 2013且默认安装了受信任的应用程序 (2016)的机器上观察到问题。

有人可以帮我解决这个问题。

标签: c#excelwindows-store-appsms-office

解决方案


经过数小时在网上搜索有关此问题的答案后,我发现在组件服务 > 计算机 > 我的电脑 > DCOM 配置 > Microsoft Excel 应用程序 >> 属性面板 - [身份选项卡]下,Windows 10 的默认设置是启动用户,而在 Windows 7 上,默认用户是交互式用户。将 Windows 10 上的身份设置更改为交互式用户为我解决了这个问题。希望这可以节省其他人我找到答案所花费的时间。


推荐阅读