web-dev-qa-db-ja.com

ReportViewer 11(2012)Visual Studio 2010

Visual Studio 2010を使用していて、SQL 2012で新しいレポートシステムをテストすることを期待して「MicrosoftReportViewer 2012 Runtime」をインストールしました。その後、Web.configから「Microsoft.ReportViewer.WebForms」への参照をクリアし、ReportViewerを削除しました。ツールボックスから制御し、新しいバージョン11のReportViewerを追加しました。

新しいコントロールをテストページに追加しました。1つは、このレジスタをテストページに追加します。

<%@ 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'
7
Nicholas

まったく同じ問題があったと思います。もしそうなら、私の解決策は、ReportViewerを参照するweb.configのすべてのエントリを削除し、次にReferencesで同じことを行い、プロジェクトをビルドしてから、ページにreportviewerを再度追加することでした。

web.configは、新しいバージョンの新しいハンドラーとアセンブリで更新されます。

16
Telmo Gondar

同じエラーが発生し、次のようにして解決しました。

  • Aspxページ(HTMLコード)で、使用していたアセンブリのバージョンに対応するように@Register Version値を更新し、PublicKeyToken値をアセンブリの正しい値で更新しました。
0
Sabotta

Web構成では、v10と11の両方のdllを指定したことを意味します。どちらか一方を削除します。

0
bbcompent1

Package.configから次のエントリを削除しましたが、機能します

  <package id="MicrosoftReportViewerWebForms_v10" version="1.0.0" targetFramework="net45" />
0
Vijai