原文:http://blog.csdn.net/lwjnumber/article/details/6590545
9、 RDLC報表部署(限於rdlc報表 windows應用程序)
1) RDLC報表所需的4個DLL文件提取
RDLC報表文件部署在客戶端若要正常工作,需4個dll文件,分別是:Microsoft.ReportViewer.Common.dll、Microsoft.ReportViewer.ProcessingObjectModel.dll、Microsoft.ReportViewer.WebForms.dll和Microsoft.ReportViewer.WinForms.dll。通常情況,只要開發人員引用了RDLC報表相關組件,程序編譯之后就應該有除Microsoft.ReportViewer.ProcessingObjectModel.dll之外的3個Dll文件。
因此,開發人員只要找到並提取Microsoft.ReportViewer.ProcessingObjectModel.dll文件,然后將該文件連同其它3個DLL文件部署到目標機器上即可。
·Vs安裝目錄+/SDK/v2.0/BootStrapper/Packages/ReportViewer,找到ReportViewer.exe文件,並解壓;
·在解壓目錄里找到ReportV1.cab包,並解壓到ReportV1目錄;
·將文件FL_Microsoft_ReportViewer_ProcessingObject_125592_____X86.3643236F_FC70_11D3_A536_0090278A1BB8的文件名修改為Microsoft.ReportViewer.ProcessingObjectModel.dll即可。其實大家可以發現ReportV1.cab包里的4個文件即為我上文中提到的4個dll文件。
2) 將編譯后的報表應用程序打包部署到目標機器即可。
3) 如果是win98操作系統的話,首先要安裝.Net可發行組件(先把IE升級到5.01版本及以上,安裝windows installer2.0以上),目前在win98操作系統下運行RDLC報表程序有個問題(只支持Remote處理模式)。
4) 引用Microsoft.SqlServer.Types.dll
Path = C:\Program Files (x86)\Microsoft SQL Server\110\SDK\Assemblies\Microsoft.SqlServer.Types.dll
Runtime Version = v2.0.50727
Version = 11.0.0.0
遇到的場景:在使用rdlc參數的時候報錯
另附文章:
提取RDLC reporting相關dll的方式,打包客戶端時需要用
http://www.tuicool.com/articles/Jn2amiQ
這三個dll可以使用以下的指令的方式取得
在windows的命令窗口輸入 Subst x: %windir%\assembly
執行完后會在我的計算機中出現一個x的磁盤,在X:\GAC_MSIL目錄下可找到對應文件的文件夾,進入找到對應的版本即可,把需要的dll版本copy出來
copy完后,在windows的命令窗口輸 Subst x: /d,這樣可以把x磁盤拿掉了
之后部署到web上時,記得要把這三個dll也同時放到bin目錄中,就可以執行reportviewr了
安裝vs2017后,RDLC 報表定義具有無法升級的無效目標命名空間
原先的RDLC報表定義用的命名空間是2008,用vs2017報表設計器重新保存后,會自動升級成2016,導致無法使用。
不想升級控件,太麻煩,所以就手動修改RDLC文件吧。
1、修改http://schemas.microsoft.com/sqlserver/reporting/2016/01/reportdefinition,將2016改成2008
2、將BODY的父節點<ReportSections><ReportSection>...</ReportSection></ReportSections>刪除
3、刪除<ReportParametersLayout>整個節點
其它的看具體出錯信息再處理吧。
報表定義具有無法升級的無效目標命名空間“http://schemas.microsoft.com/sqlserver/reporting/2016/01/reportdefinition”
nuget安裝(當前支持140 150版本)
Microsoft.ReportingServices.ReportViewerControl.WebForms
Microsoft.ReportingServices.ReportViewerControl.WinForms
注意點:保證幾個dll的版本一致