web-dev-qa-db-ja.com

ファイルまたはアセンブリ「Microsoft.ReportViewer.WebForms」をロードできませんでした

Asp.netのレポートビューアーを使用して、サイトをアップロードしようとしています。ただし、レポートビューアーを含むページが読み込まれると、次のエラーが表示されます。

ファイルまたはアセンブリ「Microsoft.ReportViewer.WebForms、Version = 11.0.0.0、Culture = neutral、PublicKeyToken = 89845dcd8080cc91」またはその依存関係の1つをロードできませんでした。検出されたアセンブリのマニフェスト定義は、アセンブリ参照と一致しません。 (HRESULTからの例外:0x80131040)

ASP.NET Webサイトを展開するのはこれが初めてなので、問題が何なのかわかりません。

45
Krishna

このリンクから、必要な更新プログラムをインストールしなかったという手がかりが得られました(問題のあるバージョンnr、v11.0.0.0)

ReportViewer 2012更新する 'Gotcha'に注意する

更新プログラムをインストールしました SQLServer2008R2SP2

ReportViewer.msi をダウンロードしました。これはインストールする必要がありました Microsoft®SQLServer®2012のMicrosoft®システムCLRタイプ (インストーラーのページの下半分を見てください)

GACでWebForms v11.0.0.0が利用可能になりました(C:\Windows\Assembly\Microsoft.ReportViewer.WebFormsv11.0.0.0およびMicrosoft.ReportViewer.Commonv11.0.0.0

60
EricG

Microsoft.ReportViewer.2012.Runtime nuget package をインストールしましたが、ReportViewer.msiまたはSQL Feature Pack 12をインストールせずに問題を解決しました

enter image description here

32
Kasper Roma

Microsoft.ReportViewer.WebFormsとMicrosoft.ReportViewer.Commonの両方を参照し、CopyLocalプロパティをtrueに設定する必要があります。これにより、dllがbinディレクトリにコピーされます(両方が必要です)。

22
jmoreno

両方をコピーして問題を解決しました

  • Microsoft.ReportViewer.WebForms.dll from C:\Program Files (x86)\Microsoft Visual Studio 12.0\ReportViewer
  • およびMicrosoft.reportviewer.common.dll from C:\Program Files\Microsoft Office\Office15\ADDINS\PowerPivot Excel Add-in

binフォルダー(ウェブサイト)に。

もちろんweb.configには以下が必要です:

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

    <assemblies>

        <add Assembly="Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91" />
        <add Assembly="Microsoft.ReportViewer.Common, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91" />
    </assemblies>

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

    <system.webServer>
        <validation validateIntegratedModeConfiguration="false" />
        <handlers>
            <add name="ReportViewerWebControlHandler" preCondition="integratedMode" verb="*" path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
        </handlers>
    </system.webServer>

そして、それだけです。私にとっては大丈夫です。

お役に立てれば。

8
CDSwSrl

別のパッケージでも同じエラーが発生しました。私の問題は、依存プロジェクトが異なるバージョンを参照していることでした。私はそれらを同じバージョンに変更し、すべてが良かった。

1
Taran

バージョン10.0.0.0、つまり「Microsoft.ReportViewer.WebForms、Version = 10.0.0.0、Culture = neutral、PublicKeyToken = b03f5f7f11d50a3a」から移行するときにこのエラーが発生しました/>

バージョン11.0.0.0、つまり.

「Microsoft.ReportViewer.WebForms、バージョン= 11.0.0.0、Culture = neutral、PublicKeyToken = 89845dcd8080cc91」

上記のように、バージョンが変更されただけでなく、公開トークンキーも変更されたことを理解するまで、しばらく時間がかかりました。

1
GunnarS

同じエラーが発生しました。私のWebアプリは、レポートビューアーバージョン10.0に向けられていましたが、11.0がインストールされている場合、10.0に10.0 .dllのリダイレクトが追加されます。これは、10.0 .dllのリダイレクトを修正しないため、11.0をアンインストールしたときに問題になりました。私の場合の修正は、単に10.0をアンインストールして再インストールすることでした。

1
user3657646

ファイルMicrosoft.ReportViewer.WebForms.dllをWebアプリケーションのbinディレクトリにアップロードします。

このdllファイルは、ローカルWebアプリケーションのbinディレクトリにあります。

0
Amit Mittal

ReportViewerの更新が機能するはずです。以下の手順を使用して、更新されたReportViewerをNuget Package Managerコンソールからインストールします。

インストールパッケージMicrosoft.ReportingServices.ReportViewerControl.WebForms

Aspxファイルにアセンブリ参照を追加するだけです。

ここで、15.0.0.は、VSにインストールされたReportViewerControl.WebFormsのバージョン番号です。ソリューションのリファレンスを確認して、バージョン番号を確認してください。 PublicTokensを追加する必要はありません(複数のインストールが存在する場合、再度トラブルが発生する可能性があります)。

0
mirzapinku

サーバーからのデータを使用してサーバーでレポートビューアーを実行するには

A)プロジェクトプロパティに移動---->参照の選択------>参照の追加

1) Import(Microsoft.ReportViewer.Common.dll)----->(パス "C:\ Program Files(x86)\ Microsoft Visual Studio 10.0\ReportViewer")

2)インポート(Microsoft.ReportViewer.ProcessingObjectModel.dll)----->(パス "C:\ Windows\Assembly\GAC_MSIL\Microsoft.ReportViewer.ProcessingObjectModel")

Import(Microsoft.ReportViewer.WebForms.dll)----->(パス "C:\ Program Files(x86)\ Microsoft Visual Studio 10.0\ReportViewer")

B)上記の3つのDLLでは、「ローカルコピー」をTrueに設定して、展開パッケージの構築中に「ビン」フォルダーにコピーされるようにします。

C)ソリューションを公開する

D)その後、「File Zilla」ソフトウェアを使用して、「Bin」フォルダーとともにすべてのファイルを「Web Server」にアップロードします。

E)これにより、サーバーにDLLがインストールされるため、クライアントに「レポートビューアー.dll」は必要ありません。

これは私のために働いた。

0
Hemal Shah

私の解決策は次のとおりです。

  1. Dll Microsoft.ReportViewer.WebForms.dllをプロジェクトのBinフォルダーにコピーします。
  2. 参照を削除します。
  3. Binフォルダーから新しい参照を追加します。

これが役立つことを願っています。

0
Hamlet Mendez

古いwebformsアプリでこのエラーが発生しました。マークアップに問題の原因となっている行があったことがわかりました。私はそれを削除し、エラーは消えました。

<%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" namespace="Microsoft.Reporting.WebForms" tagprefix="rsweb" %>
0
Steve Greene

DevExpressの試用版の有効期限が切れていました。もう一度更新してください。