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"> publicKeyToken="30AD4FE6B2A6AEED" culture="neutral"/> <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="8.0.3.0"/> </dependentAssembly> </assemblyBinding> </runtime> </configuration> |
參考來源