既存のMVCプロジェクトでReportViewer 14.0にアップグレードした後、解決できない(または理解していない)アセンブリの競合が発生しました。インストール後にアセンブリの競合が発生する
警告同じ依存アセンブリの異なるバージョン間で競合が見つかりました。 Visual Studioで、この警告をダブルクリックするか(または選択してEnterキーを押す)、競合を修正します。それ以外の場合は、アプリケーション構成ファイルの 「実行時」ノードに次のバインドリダイレクトを追加します。 NRM C:¥Program Files(x86)¥Microsoft Visual Studio¥2017¥Community¥MSBuild¥15.0¥Bin¥Microsoft.Common .CurrentVersion.targets 1964
また、言う:
まさか= 14.0.0.0、カルチャニュートラル、PublicKeyToken = = b03f5f7f11d50a3a 「Microsoft.Build.Framework、バージョン間の競合を解決します"と "Microsoft.Build.Framework、バージョン= 4.0.0.0、文化=ニュートラル、PublicKeyToken = b03f5f7f11d50a3a"。
<dependentAssembly> <assemblyIdentity name="Microsoft.Build.Framework" publicKeyToken="B03F5F7F11D50A3A" culture="neutral"/> <bindingRedirect oldVersion="0.0.0.0-14.0.0.0" newVersion="14.0.0.0"/> </dependentAssembly>
しかし、これは、実行時にこのエラーを作成します:
でした(それが言うように)
私はそれがのWeb.Configにこれらの行を追加し、エラーメッセージをダブルクリックするとファイルまたはアセンブリをロードしない 'Microsoft.Build.Framework、 バージョン= 4.0.0.0、Culture =ニュートラル、PublicKeyToken = b03f5f7f11d50a3a'または のいずれかの依存関係。システムは、指定されたファイルを見つけることができません。
Web.ConfigでbindingRedirectを削除した場合、警告のみが表示されますが、ReportViewer 14.0を含むすべてが正常に動作します。
私は診断にアウトを構築変更すると、私はこの余分な情報受け取る:診断ログで
1> There was a conflict between "Microsoft.Build.Framework, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" and "Microsoft.Build.Framework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a". (TaskId:13)
1> No way to resolve conflict between "Microsoft.Build.Framework, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" and "Microsoft.Build.Framework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a". Choosing "Microsoft.Build.Framework, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" arbitrarily. (TaskId:13)
1> References which depend on "Microsoft.Build.Framework, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" [C:\Program Files (x86)\Reference Assemblies\Microsoft\MSBuild\v14.0\Microsoft.Build.Framework.dll]. (TaskId:13)
1> C:\Program Files (x86)\Reference Assemblies\Microsoft\MSBuild\v14.0\Microsoft.Build.Tasks.Core.dll (TaskId:13)
1> Project file item includes which caused reference "C:\Program Files (x86)\Reference Assemblies\Microsoft\MSBuild\v14.0\Microsoft.Build.Tasks.Core.dll". (TaskId:13)
1> Microsoft.ReportViewer.Design, Version=14.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL (TaskId:13)
1> Microsoft.ReportViewer.WebDesign, Version=14.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL (TaskId:13)
1> C:\Program Files (x86)\Reference Assemblies\Microsoft\MSBuild\v14.0\Microsoft.Build.Utilities.Core.dll (TaskId:13)
1> Project file item includes which caused reference "C:\Program Files (x86)\Reference Assemblies\Microsoft\MSBuild\v14.0\Microsoft.Build.Utilities.Core.dll". (TaskId:13)
1> Microsoft.ReportViewer.Design, Version=14.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL (TaskId:13)
1> Microsoft.ReportViewer.WebDesign, Version=14.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL (TaskId:13)
1> References which depend on "Microsoft.Build.Framework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" [C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.2\Microsoft.Build.Framework.dll]. (TaskId:13)
1> D:\Dev\VS\--hidden-- (MVC)\NRM\packages\Microsoft.ReportingServices.ReportViewerControl.WebForms.140.340.80\lib\net40\Microsoft.ReportViewer.WebForms.dll (TaskId:13)
1> Project file item includes which caused reference "D:\Dev\VS\--hidden-- Relatie Management (MVC)\NRM\packages\Microsoft.ReportingServices.ReportViewerControl.WebForms.140.340.80\lib\net40\Microsoft.ReportViewer.WebForms.dll". (TaskId:13)
1> Microsoft.ReportViewer.WebDesign, Version=14.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL (TaskId:13)
1> Microsoft.ReportViewer.WebForms, Version=14.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL (TaskId:13)
をするために言及した競合もあります
- System.Net
- Microsoft.Build.Framework
- mscorlib
- System.Core
- システム
NuGet経由でインストールしましたか?私は2つの "競合を解決する方法がない"というメッセージがあっても、実行時エラーが発生しません。しかし私はVS2015を使用しています(あなたは2017を使用します)。プロジェクトでReportViewerをどのように使用する予定ですか?私の知る限り、.CSHTMLページでは何もレンダリングできません(Webフォームとのみ互換性があります)。私の場合は、.PDFだけが必要で、レポートはリモートモードで実行されます。 –
こんにちは@JoeSchmoe、はい私はNuGetを使用しました。私はそれを解決しましたが、今私はどのようにそれをしたのか分かりません。愚か!私は、(コントローラ内の)コードでPDFを作成し、そのファイルをFileStreamResultとしてクライアントに返します。あなたはそれをブラウザに表示するか、ブラウザにファイルとしてダウンロードさせることができます。だから私はPDFファイルを表示するのではなく、Webコントロールを使ってレンダリングします。それはとてもうまくいく。 – roberth