使用VS 2012开发报表, 如果是使用的微软的报表控件的话,默认是使用的MICROSOFT REPORT VIEWER 2012,本地开发基本上没问题,但是一发布服务器,就会发现坑了,微软挖坑从来就不打招呼,坑你没商量。
之前使用Report Viewer,只要看到类似“Could not load file or assembly xxx”之类的只要去微软下载中心下载相应的
MICROSOFT REPORT VIEWER XX RUNTIME就行了,2012就屌爆了,先提供下载链接如下:
http://www.microsoft.com/zh-cn/download/details.aspx?id=35747
装的时候会提示你还需.NET Framework 4.0 SQL Server System CLR Types 包,这是一种多么奇葩的存在哈。看看安装信息就知道了:
- 老实的程序员可能就被忽悠着去各种折腾服务器打安装包补丁包了,但是哥怒了,到时还要往其他服务器迁移或者发布咋办呢?这不都得装,这不折腾程序员么?
- 本着程序员何必难为程序员的原则,折腾出解决方案如下:
事实上,只需要找到相关的dll就行,那么你需要找到以下dll:
Microsoft.ReportViewer.WebForms.dll(VS安装目录下的ReportViewer目录,如D:Program Files (x86)Microsoft Visual Studio 11.0ReportViewer,你可以从项目引用的这个dll的属性中找到路径)
zh-CHS目录(简体中文语言包,如果你需要别的语言,那么复制其他的,VS安装目录下的ReportViewer目录,如D:Program Files (x86)Microsoft Visual Studio 11.0ReportViewer)
Microsoft.ReportViewer.Common.dll(GAC,注意版本号为11.0.0.0)
Microsoft.ReportViewer.ProcessingObjectModel.DLL(GAC,注意版本号为11.0.0.0)
Microsoft.SqlServer.Types.dll(GAC,注意版本号为11.0.0.0)
如果你不知道如何从GAC中导出DLL文件,那么可以看看这篇文章:
获取到上述文件后,将其放到网站的bin目录即可,报表就可以正常使用了,这样的话,即使迁移或者发布到其他服务器,也不需要安装任何文件了。
另外建议将这些文件纳入源代码管理。