未能載入文件或程式集 Microsoft.ReportViewer.Common, Version=11.0.0.0

  • 2019 年 10 月 4 日
  • 筆記

  WinForm客戶端軟體開發時,使用rdlc做報表,並且使用ReportViewer呈現報表時,開發者的機器運行正常。但是部署到第三方機器上運行時報錯。大致有以下幾種錯誤:

(1)未能載入文件或程式集「Microsoft.ReportViewer.Common, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91」或它的某一個依賴項。系統找不到指定的文件。文件名:「Microsoft.ReportViewer.Common, Version=11.0.0.0, Culture=neutral,PublicKeyToken=89845dcd8080cc91」

  (2)RDLC的部署(無法找到Microsoft.ReportViewer.ProcessingObjectModel.dll文件)

  (3)找不到 Microsoft.SqlServer.Types.dll或者其他的依賴項

錯誤的提示意思是第三方機器上缺少相關dll。到程式開發電腦下找到對應的烤到客戶端的程式啟動目錄下即可(項目烤到Bin\Debug目錄下)。由於以上的dll都是在開發者機器的Windowsassembly目錄中,

該目錄是微軟作業系統預定義的特殊目錄,無法直接操作裡面的文件,只能通過命令來處理。

啟動cmd.exe程式,在窗口中輸入以下命令行,每次輸入一個命令,回車後複製成功。

copy C:Windowsassemblygac_msilMicrosoft.ReportViewer.Common11.0.0.0__89845dcd8080cc91Microsoft.ReportViewer.Common.dll D:ReportViewer

copy C:Windowsassemblygac_msilMicrosoft.ReportViewer.WinForms11.0.0.0__89845dcd8080cc91Microsoft.ReportViewer.WinForms.DLL D:ReportViewer

copy C:Windowsassemblygac_msilMicrosoft.ReportViewer.ProcessingObjectModel11.0.0.0__89845dcd8080cc91Microsoft.ReportViewer.ProcessingObjectModel.DLL D:ReportViewer

copy C:WINDOWSassemblyGAC_MSILMicrosoft.SqlServer.Types11.0.0.0__89845dcd8080cc91Microsoft.SqlServer.Types.dll D:ReportViewer

【其他的dll複製方式與此類似】

複製到D盤ReportViewer目錄後,將其複製到項目的binDebug目錄,再次運行程式,一切正常。