6

我正在尝试在没有也不会安装 Office 的服务器上运行我的应用程序。

using EXCEL = Microsoft.Office.Interop.Excel;
...
EXCEL.Application app = new EXCEL.Application();//Exception thrown here

该代码在我自己的系统上运行良好,但在服务器上它给出了以下异常:

Unhandled Exception: System.Runtime.InteropServices.COMException: 
Retrieving the COM class factory for component with CLSID {...} failed
due to the following error: 80040154 Class not registered
(Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).

两个系统都是 32 位的,我在应用程序的 exe 旁边复制了 excel Interop dll。我还安装了O2010PIA

任何铅?

4

2 回答 2

11

Office 互操作程序集是运行时可调用包装器 (RCW),它允许您通过其公开的 COM API 与安装在系统上的 Office 副本进行互操作。

错误消息表明没有安装 Excel,这正是我所期望的。不能在没有 Office 的计算机上使用 Interop 程序集。

于 2012-12-01T16:52:54.733 回答
3

我正在尝试在没有也不会安装 Office 的服务器上运行我的应用程序。

正如 Joe 所说,您需要安装 Excel 才能使 Interop 工作。如果您对此坚决反对,请考虑第三方替代方案。通常,Microsoft 不建议在您的服务器上安装 Office 并将其与 Interop 一起使用- 话虽如此,它会起作用(至少在大多数情况下)。

于 2012-12-01T16:55:44.607 回答