在本地制作一个com引用

时间:2012-04-03 18:36:16

标签: asp.net com

我有一个asp.net网站,后面有c#代码并使用visual studio 2010。

我添加了对com对象“Microsoft Excel 14.0 Object Library”的引用,以管理我网站中的excel文件。我在调试时运行良好,在我安装了excel的计算机上,但是当我发布网站并将其部署在我的服务器上时,它崩溃了,因为它找不到引用(excel没有安装在那里)。它崩溃了web.config文件中的引用

<assemblies>
  <add assembly="office, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71E9BCE111E9429C"/>
  <add assembly="Microsoft.Vbe.Interop, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71E9BCE111E9429C"/>
</assemblies>

有没有办法让这个引用本地化,比如dll,这样即使没有安装excel,网站也可以使用它?

2 个答案:

答案 0 :(得分:2)

有一个用于Microsoft Office库的PIA程序集的概念。基本思想如下:要构建解决方案,您只需要引用PIA程序集,它们自己引用真实的办公程序集。它们可以与解决方案一起分发,即使没有安装办公室,也可以在不同的PC上正确构建。我不知道它会运行(可能会,但任何与excel相关的功能都会使它崩溃)。

但是你不能在没有办公室的PC上使用办公应用程序。它只是没有部署。因此,一种解决方案是检查办公室是否已安装并动态加载必要的组件。理想情况下,excel模块应与应用程序的其余部分隔离。

答案 1 :(得分:1)

有几个库仅使用 DLL 文件,例如EPPlus