.net 未能加载文件或程序集“Newtonsoft.Json, Version=4.5.0.0
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.net 未能加载文件或程序集“Newtonsoft.Json, Version=4.5.0.0相关的知识,希望对你有一定的参考价值。
.net 的问题
我之前项目里面用过Newtonsoft.Json的.net 2.0版本,也就是 Version=4.5.0.0
后来我因为另外一段代码需要用到.net 4.0版本的Newtonsoft.Json,因此我删除了项目中原来那个版本的dll引用,引用了.net4.0的Newtonsoft.Json.dl,也就是 Version=6.0.0.0;编译通过,但是调试的时候报错:
未能加载文件或程序集“Newtonsoft.Json, Version=4.5.0.0,这是为啥。有没有高手能解决,我估计应该是配置文件里的版本没有变过来,导致程序找不到原来的4.5的版本报错,但是我找不到有这个dll方面的配置。。。
这个问题已经困扰我两天了。。 。
是.dll文件引用路径的问题,肯定是因为开发的时候没把.dll文件放在项目文件夹下,需要重新加载,重新生成。
解决办法步骤如下:
1、在项目的引用目录里添加,rebuild 运行项目;
2、如果1方法不能解决问题,那么可以选中项目project,点击鼠标右键,选择属性,在引用路径下,查看右侧的引用路径是否正确,如果不正确,remove掉,重新添加即可,rebuild 运行项目;
3、如果上述两个步骤还是没有解决问题,那么就需要注册一下程序集;
(1)以管理员身份进入CMD命令提示框;
(2)找到VS版本的注册程序集工具,如果Framework2.0默认安装的则是这个目录下:C:\\Windows\\Microsoft.NET\\Framework\\v2.0.50727,找到RegAsm工具;
(3)将工具的路径输入CMD命令框 ,并且输入工具名称regasm,按空格,写上程序的dll路径;
(4)rebuild项目。
一般情况下出现这样的问题是因为:dll文件不存在或者路径不正确。
也有可能是SupermarketSystem.dao项目还没编译生成造成主程序找不到相关的DLL文件。
可以在解决方案的“设置依赖项”里先设置各个项目的依赖关系,然后再重新生成一下即可,或者先单独生成SupermarketSystem.dao再试试。
参考技术A 你看下aspx页面的最顶端的代码中是否有此程序集的旧版本相关信息,改为新版本的对应信息即可。追问aspx页面的最顶怎么会有那个dll的引用啊?
是页面的后台new了个类。然后这个类有引用
看web.config中有没有
追问没有发现关于这个dll的配置
私信给我,我给你QQ号,远程协助帮你看下吧。
追问已经发私信给你了。
追答远程查看后得知,是因为引用第三方的 fineui 库依然使用旧版本导致。
更换 fineui为新版,或找到源码更改引用 为新版,问题解决。
.Net MVC 提示未能加载文件或程序集
最近在开发.Net MVC程序时,突然出现未能加载文件或程序集的错误,
错误1
错误2
猜测时由于引用了Swagger,导致Swagger依赖的组件版本和现有版本冲突(现在仍未确定是这个原因),浪费了好长时间去寻找原因。最终查找资料的时候看到有人提及到Web.config,于时试着将现有5.2.3.0版本的依赖加入到Web.config文件,最终解决第一个问题。
看到Web.config的bindingRedirect节点之后(之前除了配置数据库连接和自定义参数,没有深入了解Web.config,这也是这么长时间都没有解决问题的原因),第二个问题也就随着解决了。在配置文件中,bindingRedirect表示重定向绑定,意思就是如果有0.0.0.0到5.2.3.0之间的引用,最后都重定向到5.2.3.0也就是newVersion中指定的版本。这是官方对bindingRedirect节点的解释。
总结,不知道是我个人的问题还是什么,开发程序时正常还好,稍微出点问题就需要找很长时间的问题,最终还大部分都不是代码上的原因。归根结底还是太懒,只了解经常用到的东西。觉得无关的就没有仔细看。这是病!得改!谨以此文,记录这次教训。
以上是关于.net 未能加载文件或程序集“Newtonsoft.Json, Version=4.5.0.0的主要内容,如果未能解决你的问题,请参考以下文章