提取reporting相關dll的方式-以vs2012為例

提取report service相關dll的方式-以vs2012為例

我們若在做網頁時,需要用到報表的方式呈現,可能會以reporting service做呈現,可以使用reportview搭配 rdlc(local report)的方式來做

但一般在開發的過程沒有什麼大問題,比較大的問題是在部署的時候,因為server可能缺少 report 的dll元件

要使用reportviewer來呈現報表,需要有三個dll

Microsoft.ReportViewer.WebForms.DLL

Microsoft.ReportViewer.Common.dll

Microsoft.ReportViewer.ProcessingObjectModel.DLL

這三個dll隨著不同的visual studio版本,也有不同的版次

visual studio2010的report 版次是10

visual studio2012的report 版次是11

若是將vs2010的專案,改由vs2012來開啟,且頁中若有拉reportviewer的話,會出現下列畫面

image

  1. 專案必須要先重新”參考”版次11的Microsoft.ReportViewer.WebForms.DLL
  2. 還有web.config中有關reporting關鍵字的版本,也是改成11
  3. 有使用到reportingviewer的頁面,也要將html畫面中的Register assembly改成以下

<%@ Register assembly="Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" namespace="Microsoft.Reporting.WebForms" tagprefix="rsweb" %>

這樣測試看看,若本機沒問題

image

剩下的就是之前提到的那三個dll

這三個dll可以使用以下的指令的方式取得

 

在windows的命令視窗輸入 Subst x: %windir%\assembly


執行完後會在我的電腦中出現一個x的磁碟,打開後可看到了所有assembly下的所有DLL,按需要的版本尋找即可, 建立把需要的dll版本copy出來

copy完後,在windows的命令視窗輸 Subst b: /d,這樣可以把x磁碟拿掉了

 

之後部署到web上時,記得要把這三個dll也同時放到bin目錄中,就可以執行reportviewr了