使com引用成为本地引用

  • 本文关键字:引用 com asp.net com
  • 更新时间 :
  • 英文 :


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

我添加了一个com对象"Microsoft Excel 14.0对象库"的引用来管理我网站中的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,网站也可以使用它?

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

但是,如果没有办公室,你就无法在电脑上使用办公应用程序。它只是不配合部署。因此,一种解决方案是检查office是否已安装,并动态加载必要的程序集。理想情况下,excel模块应该与应用程序的其他部分隔离。

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

最新更新