在服务器上部署 VS 2015 应用程序时出错

Error deploying VS 2015 application on server

我正在使用 VS 2015 创建一个控制台应用程序,它引用了 Microsoft.Office.Interop.Excel。当我将它部署在服务器 (Windows Server 2012) 上时,出现以下错误:

   Retrieving the COM class factory for component with CLSID {0004567-3456-
   0000-C002-000434000046} failed due to the following error: 80040154

我读了一些旧帖子,建议我必须在服务器上安装 Office 2010。然而,这是不可能的。有什么方法可以在我的应用程序中嵌入 Excel 程序集吗? 或者有什么不同的方法来解决这个问题?我需要做的只是提取一个 Excel 文件 sheet 名称作为列表....

请记住,您需要在目标机器上安装主机应用程序。您何时何地 运行 服务器上的控制台应用程序?

Microsoft 目前不推荐也不支持从任何无人值守的非交互式客户端应用程序或组件(包括 ASP、ASP.NET 自动化 Microsoft Office 应用程序、DCOM 和 NT 服务),因为当 Office 在此环境中为 运行 时,Office 可能表现出不稳定的行为 and/or 死锁。

如果您要在服务器端上下文中构建 运行 的解决方案,您应该尝试使用已针对无人值守执行安全设置的组件。或者,您应该尝试找到至少允许 运行 客户端部分代码的替代方案。如果您从服务器端解决方案使用 Office 应用程序,该应用程序将缺少许多 运行 成功所必需的功能。此外,您将承担整体解决方案稳定性的风险。在 Considerations for server-side Automation of Office 文章中阅读更多相关信息。

如果您只处理打开的 XML 文档,您可以考虑使用 Open XML SDK。有关详细信息,请参阅 Welcome to the Open XML SDK 2.5 for Office。或者使用为服务器端执行而设计的任何第三方组件。