Asp.net-Mvc

在新的 ASP.NET MVC 5 項目中更新 NuGet 包引用後,如何修復與 JSON.NET 的程序集版本衝突…

  • February 1, 2014

我在 VS 2013(更新 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 程序集的所有引用

    • 找到了兩個,一個到 v6,一個到 v5
    • 將 v5 的引用替換為 v6
  • 重新載入項目

  • 建構和通知程序集引用失敗

  • 查看 References 並看到現在有兩個 Newtonsoft.Json。刪除無法解決的問題。

  • 重建 - 沒有警告

引用自:https://stackoverflow.com/questions/21498074