MS.MVC 和 Newtonsoft.Json (json.net) 的版本不相容問題

MS.MVC 和 Newtonsoft.Json (json.net) 的版本不相容問題
Could not load file or assembly 'Newtonsoft.Json, Version=4.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed'

狀況

  • MS.MVC4 裡有引用到Newtonsoft.Json version=4.5.0.0
  • Newtonsoft.Json 最新版已到9 or upper
    • 使用.Net Framework 4,對應的版本只到8。目前開發用到8.0.3
    • 使用.Net Framework 4.5.1,對應的版本到9
  • (未使用Nuget) 直接copy path取得Newtonsoft.Json。
    所以未看到在web.config裡自動加入 assemblyBinding\dependentAssembly 片段指示
 
修正方式
 
1.最快且方便的方法
     在Package Manger Console裡重新取用Newtonsoft.Json
Update-Package –reinstall Newtonsoft.Json

     會自動對應可用版本,用這個方式可以直接省去比對的時間
 
2.或基本指示調整
web.config 裡加入元件版本引用指示
<configuration>
<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
            <assemblyIdentity name="Newtonsoft.Json"

                                            publicKeyToken="30AD4FE6B2A6AEED" culture="neutral"/>
                                   <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="8.0.3.0"/>
        </dependentAssembly>
           </assemblyBinding>
</runtime>
</configuration>







 
 
參考來源

這個網誌中的熱門文章

Docker on Windows – 網路不通問題

Android Studio 2 使用 Visual Studio Emulator for Android 模擬器