2017-04-09 25 views
1

既存の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
  • システム
+0

NuGet経由でインストールしましたか?私は2つの "競合を解決する方法がない"というメッセージがあっても、実行時エラーが発生しません。しかし私はVS2015を使用しています(あなたは2017を使用します)。プロジェクトでReportViewerをどのように使用する予定ですか?私の知る限り、.CSHTMLページでは何もレンダリングできません(Webフォームとのみ互換性があります)。私の場合は、.PDFだけが必要で、レポートはリモートモードで実行されます。 –

+0

こんにちは@JoeSchmoe、はい私はNuGetを使用しました。私はそれを解決しましたが、今私はどのようにそれをしたのか分かりません。愚か!私は、(コントローラ内の)コードでPDFを作成し、そのファイルをFileStreamResultとしてクライアントに返します。あなたはそれをブラウザに表示するか、ブラウザにファイルとしてダウンロードさせることができます。だから私はPDFファイルを表示するのではなく、Webコントロールを使ってレンダリングします。それはとてもうまくいく。 – roberth

答えて

0

もう一度エラーが発生しました。

NuGetを使用してReportViewerを追加したときに、過去にこれらの参照を手動で追加したときに、それが発生しました。私はマニュアルリファレンスをクリアしましたが、これでWeb.Configをクリアできませんでした。このプロセスでは、他のパッケージも更新しました。

Web.Configからこれらの行を消去して問題を解決しました。

enter image description here

関連する問題