2012-08-30 192 views
7

我正在使用Visual Studio 2010,並安裝了「Microsoft Report Viewer 2012 Runtime」,希望能夠在SQL 2012中測試新的報告系統。之後,我清除了引用「Microsoft.ReportViewer。 WebForms「,並從我的工具箱中刪除了ReportViewer控件,並添加了新版本11 ReportViewer。ReportViewer 11(2012)Visual Studio 2010

我加入了新的控制到測試頁和一個它增加了這個寄存器測試頁:

<%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" Namespace="Microsoft.Reporting.WebForms" TagPrefix="rsweb" %> 

,並將其添加這些條目到Web.config:

<buildProviders> 
<add extension=".rdlc" type="Microsoft.Reporting.RdlBuildProvider, Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 
</buildProviders> 

<httpHandlers> 
<add path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" validate="false" /> 
</httpHandlers> 

<handlers> 
<add name="ReportViewerWebControlHandler" preCondition="integratedMode" verb="*" path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 
</handlers> 

工具箱中的控件是版本11的新增功能,但系統一直在嘗試引用版本10版本。此外,當我嘗試編譯它時,我得到錯誤:

The type 'Microsoft.Reporting.WebForms.ReportViewer' exists in both 'c:\Windows\assembly\GAC_MSIL\Microsoft.ReportViewer.WebForms\10.0.0.0__b03f5f7f11d50a3a\Microsoft.ReportViewer.WebForms.dll' and 'c:\Windows\assembly\GAC_MSIL\Microsoft.ReportViewer.WebForms\11.0.0.0__89845dcd8080cc91\Microsoft.ReportViewer.WebForms.DLL' 
+0

此修復程序的問題對我來說。我正在使用Azure虛擬機作爲Web應用程序,數據庫服務器是另一個單獨的虛擬機,因此安裝Report Viewer運行時無助,因爲它也需要安裝SQL Feature Pack。我剛剛從另一臺服務器上覆制了Microsoft.ReportViewer.Common文件夾,那裏工作和繁榮 http://ata2931977.blogspot.com/2015/06/running-rdlc-reports-on-azure.html –

回答

16

我想我有完全相同的問題。如果是這樣,我的解決方案是刪除引用ReportViewer的web.config中的所有條目,然後在引用中執行相同的操作,構建項目,然後在頁面中重新添加報表查看器。

web.config將更新爲新版本的新處理程序和程序集。

+1

這是我的問題以及。需要從我的web.config中刪除虛假條目。關鍵的一步是在重新添加正確的參考之前進行重建。 – CobaltBlue

+0

這就是這這這這,你爲什麼不是答案!? – peroija

+0

@Telmo這不適合我。我刪除了對版本10的引用,從web.config中刪除了第10個條目,但這不會構建我的項目,因爲ReportViewer庫在此階段不存在。當我通過nuget添加版本11時,它在package.config和v11引用中添加了條目,但未在web.config中添加任何條目。我現在得到一個運行時錯誤。 – nickornotto

0

我有同樣的錯誤,並通過執行以下操作解決它:

  • 在aspx頁面(HTML代碼),更新版本@Register值對應於組件的版本我是用並用程序的正確值更新PublicKeyToken值。
0

在您的web配置中,這意味着您已指定v 10和11 dll。刪除一個或另一個。

0

我已刪除從package.config以下項和它的作品

<package id="MicrosoftReportViewerWebForms_v10" version="1.0.0" targetFramework="net45" /> 
相關問題