什么是办公室运行时?它在哪里有用?

时间:2015-03-04 06:09:39

标签: ms-office vsto office-interop visual-studio-2003

我有一个.net解决方案,用于将word / excel转换为在MS Visual Studio .Net 2003中开发的pdf。我在我的项目中添加了引用,即Microsoft.Office.Interop.Excel,Microsoft.Office.Interop.Word。它在我安装MS Office的本地系统中正常工作但是当我尝试在没有安装MS Office的服务器中执行时,我遇到了一些类ID错误00024500-0000-0000-c000-000000000046和000209FF-0000-0000 -c000-000000000046关于Word和excel。所以我告诉我的客户在服务器上安装MS Office但他希望我使用Office运行时2010来转换MS office文档?那么办公室运行时到底是什么?在我的情况下它有用吗?如果我使用的是VSTO,是否需要安装MS Office?

我是新来的。请帮助。

谢谢, 普利文。

1 个答案:

答案 0 :(得分:1)

没有" Office运行时"。

  

我在项目中添加了引用,即Microsoft.Office.Interop.Excel,Microsoft.Office.Interop.Word。

Interop程序集用于将您的呼叫编组到非托管环境中。没有安装可以处理您的呼叫的实际COM服务器(即没有端点)。

无论如何, Microsoft目前不建议并且不支持从任何无人参与的非交互式客户端应用程序或组件(包括ASP,ASP.NET,DCOM和NT服务)自动化Microsoft Office应用程序,因为Office在此环境中运行时可能会出现不稳定的行为和/或死锁。

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

如果只处理开放XML文档,则可以使用Open XML SDK。有关详细信息,请参阅Welcome to the Open XML SDK 2.5 for Office

但是如果你需要处理二进制文件格式,你必须寻找专为服务器端执行而设计的第三方组件。