原文:RDLC报表 在WinForm里运行出现 未能加载文件或程序集microsoft.reportviewer.winforms
推荐以下方案二
做一下记录顺便帮助一下遇到问题的朋友。
做RDLC报表在WinForm运行,在VS里面调试引用了“Microsoft.ReportViewer.Common.dll”和“Microsoft.ReportViewer.WinForms.dll”调试运行的时候没有问题。
之后我直接把Bin文件夹下的Debug目录拷到别的机器上运行,打印的时候出现了“未能加载文件或程序集microsoft.reportviewer.winforms”的错误。这是貌似因为在调试
运行的时候Bin目录的引用的DLL是本地路径下的,没有打包成安装程序在程序目录下没有这两个DLL,于是把这两个DLL文件拷贝到程序运行目录下重新在引用。紧接着又蹦出
了一个错误。具体的忘记了,大概是 on print Processing 什么的错误,这个问题测试了一下如果在运行软件的目标机器上 安装了 ReportViewer就不会有这个问题了,可是又
不能在每个客户机上都安装一遍ReportViewer。
解决这个问题:
1、可以把ReportViewer.exe文件解压出来。
2、找到里面的扩展名为“cab”的文件,继续解压。
3、找到扩展名为“cab”文件解压后目录里的“FL_Microsoft_ReportViewer_ProcessingObject_125592_125592_x86_ln.3643236F_FC70_11D3_A536_0090278A1BB8”。
4、把这个文件拷贝出来更改名称为“Microsoft.ReportViewer.ProcessingObjectModel.dll”。
最后把这个DLL文件放入Bin文件目录下在到VS里面引用一下。OK问题解决了!
-------------------------------------------------方案二(推荐)--------------------------------------------------------
这4个DLL文件放入Bin文件目录下,不需要VS引用
copy C:\WINDOWS\assembly\GAC_MSIL\Microsoft.ReportViewer.WinForms\11.0.0.0__89845dcd8080cc91\Microsoft.ReportViewer.WinForms.dll C:\
copy C:\WINDOWS\assembly\GAC_MSIL\Microsoft.ReportViewer.Common\11.0.0.0__89845dcd8080cc91\Microsoft.ReportViewer.Common.dll C:\
copy C:\WINDOWS\assembly\GAC_MSIL\Microsoft.SqlServer.Types\11.0.0.0__89845dcd8080cc91\Microsoft.SqlServer.Types.dll C:\
copy C:\WINDOWS\assembly\GAC_MSIL\Microsoft.ReportViewer.ProcessingObjectModel\11.0.0.0__89845dcd8080cc91\Microsoft.ReportViewer.ProcessingObjectModel.dll C:\