1. 程式人生 > >MVC4.0:未能加載文件或程序集“Newtonsoft.Json, Version=4.5.0.0 ”或它的某一個依賴項。找到的程序集清單定義與程序集引用不匹配

MVC4.0:未能加載文件或程序集“Newtonsoft.Json, Version=4.5.0.0 ”或它的某一個依賴項。找到的程序集清單定義與程序集引用不匹配

tex 原來 log 解決 center png 高版本 不一致 清單

在搭建MVC4.0項目的時候遇到報錯如下:技術分享

根據錯誤提示,查看程序集清單中引用版本為4.5.11,清單如下:

技術分享

圖1

再看了下項目具體引用版本為6.0.0.0,如下:

技術分享

圖2

項目實際引用版本與項目程序集清單中版本不一致導致報錯,那麽為什麽會出現版本不一致情況呢?於是我又用VS新建了一個MVC4.0項目發現程序集清單中版本與項目中實際引用版本都是4.5.11

技術分享

圖3

對比圖2和圖3可以看出文件引用路徑已經被改變了。那麽可以肯定的是在項目建好以後我的什麽操作導致了程序集清單中版本號與項目中實際引用版本號不一致的情況。

看了圖2中引用的新路徑發現原來是我使用來自網絡的一套開源框架自帶了更高版本的Newtonsoft.Json.dll文件,在使用VS編譯項目文件時,會自動尋找更高版本的引用文件進行編譯;而且編譯操作不會改變項目程序集清單。那麽在項目運行的時候,會對項目程序集清單引用文件進行一一匹配,遇到與清單引用版本不同時會報錯提示。這裏要提的是在項目編譯階段是不會檢查程序集清單中的版本引用是否有問題的,所以這個錯誤應該是個運行時錯誤。

解決方案

在web.config的根節點加入以下節點配置:

技術分享

該配置作用是告訴程序在運行時重新引用新版本進行運行

MVC4.0:未能加載文件或程序集“Newtonsoft.Json, Version=4.5.0.0 ”或它的某一個依賴項。找到的程序集清單定義與程序集引用不匹配