VS2013自带的Newtonsoft导致的编译异常

重装系统后,安装了最新的VisualStudio2013,

结果发现有些项目死活无法编译通过,一直报错,说“未能找到类型或命名空间名称“abc.model”(是否缺少 using 指令或程序集引用?)”,可是这个dll明明是引用了,而且重装之前也一直是正常的,再显示错误信息里的警告,发现一堆的引用错误,一共37个,列举前面几个大致如下:

警告	1	未能解析主引用“abc.model”,因为它对程序集“Newtonsoft.Json, Version=4.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed”具有间接依赖关系,而该程序集是针对“.NETFramework,Version=v4.0,Profile=Client”框架生成的。该框架版本高于当前目标框架“.NETFramework,Version=v3.5”。	ConsoleApplication1
警告	2	未能解析主引用“abc.model”,因为它对 .NET Framework 程序集“mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”具有间接依赖关系,而该程序集的版本为“4.0.0.0”,高于当前目标框架中的版本“2.0.0.0”。	ConsoleApplication1
警告	3	未能解析主引用“abc.model”,因为它对 .NET Framework 程序集“System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”具有间接依赖关系,而该程序集的版本为“4.0.0.0”,高于当前目标框架中的版本“3.5.0.0”。	ConsoleApplication1
警告	4	未能解析主引用“abc.model”,因为它对 .NET Framework 程序集“System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”具有间接依赖关系,而该程序集的版本为“4.0.0.0”,高于当前目标框架中的版本“2.0.0.0”。	ConsoleApplication1
警告	5	未能解析主引用“abc.model”,因为它对 .NET Framework 程序集“System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”具有间接依赖关系,而该程序集的版本为“4.0.0.0”,高于当前目标框架中的版本“2.0.0.0”。	ConsoleApplication1

尝试重新引用dll,编译,失败;
尝试重新加载项目,失败;
尝试重启VisualStudio,失败;
尝试重启电脑,还是失败
最后尝试新建一个项目,只引用abc.model这一个dll,编译,还是失败

然后把abc.model项目加入,并只引用这个项目,编译,通过了;

打开abc.model生成文件所在的Debug目录,把abc.model引用的所有dll都删除,只保留abc.model.dll,编译,失败;

终于,尝试一个个删除abc.model引用的dll,尝试定位问题,果然发现删除Newtonsoft.Json后,编译才失败(真笨啊,一开始从错误警告提示里第一个,就该知道是这个问题了)

最后猜想,是不是因为系统目录下存在这个dll的Framework4.0版本导致的,然后在系统目录下搜索Newtonsoft.dll,果然查找到了:
C:\Program Files (x86)\Microsoft Visual Studio 12.0\Blend\Newtonsoft.Json.dll
把这个文件删除后,前面的异常全部消失了。

排除步骤比较原始,比较奇怪的是,这个dll又没有加入GAC,为什么会去使用这个目录下的Newtonsoft.Json.dll,而不是提示未找到Newtonsoft.Json.dll?

有知道的朋友,麻烦告知。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

游北亮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值