部署C# ReportViewer遇到的坑


前些天臨時給客戶做個工具,統計具體時間點各種車型數據的數量及比重,為了顯示方便就用C#來做,因為它有現成的reportviwer控件提供了顯示,打印,導出功能。原本我以為這個控件是.netframework里的,做完后直接就發給客戶了。但昨天客戶打電話來說工具打不開,我一看系統日志,是一個未能加載microsoft.ReportViewer.Winforms庫的錯誤,於是我就把項目中自動引用的Microsoft.ReportViewer.Winforms和Microsoft.ReportViewer.Common一並拷過去,軟件是能正常打開了,但是在呈現報表是崩潰。

后來折騰了兩個小時,終於搞明白了。ReportViewer不是.netframework提供了,而是visual studio提供的組件,它依賴如下組件:

  • Microsoft.ReportViewer.Winforms.dll
  • Microsoft.ReportViewer.Common.dll
  • Microsoft.ReportViewer.ProcessingObjectModel.dll
  • Microsoft.ReportViewer.DataVisualization.dll
  • Microsoft.SqlServer.Types.dll
  • Microsoft.ReportViewer.WinForms.resources.dll
  • Microsoft.ReportViewer.DataVisualization.resources.dll

只要將這些組件拷到exe目錄就行了,去哪里獲取呢?可以去微軟官網下載reportviewer.exe安裝,也可以在自己開發環境下手動找到這些庫。下面介紹的是手動找的:

1、可在visual studio的目錄/ReportViewer下找到Microsoft.ReportViewer.Winforms.dll和Microsoft.ReportViewer.WinForms.resources.dll,Microsoft.ReportViewer.WinForms.resources.dll是一個文本資源庫,有許多語言版本,選擇其中一個版本就行了,如zh-CHS.

2、其它的庫可以在windows的庫全局緩存目錄(C:\Windows\assembly\GAC_MSIL)里找到,直接用資源管理器進去是不能拷貝的,需要用shell進去用cp指令拷貝.注意庫的版本。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM