【整理】不安装VS的Web服务器部署

可能比较常用的组件

1. Crystal Report  - 未能加载文件或程序集“CrystalDecisions.CrystalReports.Engine 

在网上大多讲的是单独安装的水晶报表的部署,和vs2008自带的不同,因为他们的程序集的版本不同。
vs2008自带的水晶报表的版本是10.5的,在官方网站没有找到。
后来查看MSDN才知道,其实Prerequisites(系统必备)就放在我们的机器中,
位置就在C:/Program Files/Microsoft SDKs/Windows/v6.0A/Bootstrapper/Packages。
水晶报表的运行时组件就在该目录下的CrystalReports10_5/CRRedist2008_x86。
将CRRedist2008_x86在要部署的机器上安装就可以了。 

找到文件:C:\Program Files\Microsoft Visual Studio 9.0\ReportViewer

      Microsoft.ReportViewer.Common.dll  和 Microsoft.ReportViewer.WebForms.dll

注册到 C:\Windows\Assembly

2. 未能加载文件或程序集“Microsoft.Office.Tools.Excel, Version=8

这个问题初步判断为服务器上面缺少office的组件。

我开发的环境安装了vs2005。vs2005安装完毕后,在GAC(路径为:C:\WINDOWS\assembly)中注册很多程序集。在C:\WINDOWS\assembly目录下面找到了Microsoft.Office.Tools.Excel 版本:8.0.0.0 公钥标识:b03f5f7f11d50a3a  与我的配置文件一致。(奇怪为什么配置文件中PublicKeyToken=“B03F5F7F11D50A3A"为大写,而C:\WINDOWS\assembly目录下面的公钥标识为小写呢?.net不是区分大小写吗?)

服务器上由于没有安装vs2005。而开发网站的时候“引用dll “ 的时候引用的是C:\WINDOWS\assembly下面的程序集。在服务器的C:\WINDOWS\assembly目录下面根本就不存在Microsoft.Office.Tools.Excel 所以运行网站的时候报错。

解决方案:

在服务器上面把程序需要引用的dll注册到GAC中。

具体方法:

1.先把需要的dll拷贝到服务器上面。把开发环境中的C:\Program Files\Common Files\Microsoft Shared\VSTO目录直接拷贝到服务器的C:\Program Files\Common Files\Microsoft Shared\目录下。

2.在服务器上 开始-程序-管理工具-Microsoft .NET Framework 2.0 配置-管理程序集缓存-将程序集添加到程序集缓存。选中那些dll即可。

运行网站。一切ok。

原文地址:https://www.cnblogs.com/wonder315/p/2755340.html