MVC4.0:未能加载文件或程序集“Newtonsoft.Json, Version=4.5.0.0 ”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MVC4.0:未能加载文件或程序集“Newtonsoft.Json, Version=4.5.0.0 ”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配相关的知识,希望对你有一定的参考价值。
在搭建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 ”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配的主要内容,如果未能解决你的问题,请参考以下文章