您的位置:首页 > 其它

Microsoft report viewer 2012出现无法加载相关dll的解决办法

2014-02-22 00:39 429 查看
Microsoft report viewer 2012出现无法加载相关dll的解决办法

使用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 包,这是一种多么奇葩的存在哈。看看安装信息就知道了:

Microsoft report viewer 2012出现无法加载相关dll的解决办法_www.fengfly.com

老实的程序员可能就被忽悠着去各种折腾服务器打安装包补丁包了,但是哥怒了,到时还要往其他服务器迁移或者发布咋办呢?这不都得装,这不折腾程序员么?

本着程序员何必难为程序员的原则,折腾出解决方案如下:

事实上,只需要找到相关的dll就行,那么你需要找到以下dll:

Microsoft.ReportViewer.WebForms.dll(VS安装目录下的ReportViewer目录,如D:\Program Files (x86)\Microsoft Visual Studio 11.0\ReportViewer,你可以从项目引用的这个dll的属性中找到路径)

zh-CHS目录(简体中文语言包,如果你需要别的语言,那么复制其他的,VS安装目录下的ReportViewer目录,如D:\Program Files (x86)\Microsoft Visual Studio 11.0\ReportViewer)

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文件,那么可以看看这篇文章:

导出你的GAC Assembly中的DLLS

获取到上述文件后,将其放到网站的bin目录即可,报表就可以正常使用了,这样的话,即使迁移或者发布到其他服务器,也不需要安装任何文件了。

另外建议将这些文件纳入源代码管理。

如何找到本地的dll。

导出你的GAC Assembly中的DLLS

方法1:

CMD命令中,进入C:\windows\assembly,然后XCOPY GAC_MSIL c:\temp /E

这样就得到了dlls了,以命名空间来分类。

如果想将dlls从集合中分出来,使用XCOPY GAC c:\temp /E

方法2:

运行中输入:

C:\WINDOWS\ASSEMBLY\GAC_MSIL

即可打开GAC的正常展示目录

方法3:

Subst b: %windir%\assembly

执行完后,会发现硬盘分区多了个B盘,打开后看到了所有assembly下的DLL,于是在这里就搜到了Microsoft.ReportViewer.ProcessingObjectModel.dll,将其复制出来。

然后,这个虚拟的B分区不再需要,于是执行以下命令将其删除:
Subst b: /d
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: