且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

RDLC报表 在WinForm里运行出现 未能加载文件或程序集 Microsoft.ReportViewer.WinForms, Version=11.0.0.0 System.IO.FileNotFoundException

更新时间:2021-11-23 06:20:32

原文: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:\