1. ホーム
  2. asp.net-mvc

[解決済み] 新しいASP.NET MVC 5プロジェクトでNuGetパッケージ参照を更新した後、JSON.NETとのアセンブリバージョンの競合を修正するにはどうすればよいですか。

2023-02-26 03:42:55

質問

VS 2013 (Update 1) で新しい ASP.NET MVC 5 Web プロジェクトを作成し、すべての NuGet パッケージを更新しました。プロジェクトをビルドすると、次のような警告が表示されます。

警告 MSB3243: Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed" と "Newtonsoft.Json, Version=4.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed" 間の衝突を解決する方法がありません。

しかし、web.config を確認すると、バインディング リダイレクトが行われていることが確認できます。

  <dependentAssembly>
    <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral"/>
    <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0"/>
  </dependentAssembly>

これは、まさに警告が忠告していることです。

どうすればこの警告を修正できますか?

どのように解決するのですか?

ここでは、私が警告を修正するために使用した手順を説明します。

  • VS でプロジェクトをアンロードする
  • .csproj ファイルを編集する
  • Newtonsoft.Json アセンブリへのすべての参照を検索します。
    • 2 つ見つかりました。1 つは v6 で、もう 1 つは v5 です。
    • v5 への参照を v6 に置き換える
  • プロジェクトの再読み込み
  • ビルドとアセンブリ参照の失敗の通知
  • 参照を表示し、Newtonsoft.Jsonへの参照が2つあることを確認します。解決に失敗している1つを削除してください。
  • リビルド - 警告なし