我有一个项目,比方说项目A.它是一个dll(类库)项目。目标框架是.NET 4.0(不是客户端配置文件)。我在这个项目中添加了Azure存储的块,它本身添加了许多其他引用。项目构建没有问题。
在同一个解决方案中,我有另一个项目,比如项目B.项目B也是一个dll(类库)项目。目标框架也是.NET 4.0(不是客户端配置文件)。它还有一堆对其他库的引用,但它本身构建得很好。
当我在项目B中添加对项目A的引用时出现问题。它不再编译了,问题的根源是我认为,与编译开始时这些警告的系列相关< / p>
1&gt; C:\ Program Files(x86)\ MSBuild \ 12.0 \ bin \ Microsoft.Common.CurrentVersion.targets(1697,5):警告MSB3275:主要引用“...”无法解析,因为它具有间接依赖于程序集“Newtonsoft.Json,Version = 6.0.0.0,Culture = neutral,PublicKeyToken = 30ad4fe6b2a6aeed”,它是针对“.NETFramework,Version = v4.5”框架构建的。这是比当前目标框架“.NETFramework,Version = v4.0”更高的版本。
项目B实际上在许多地方使用JSON NewtonSoft 4.5.0.0,但我知道Azure块需要JSON NewtonSoft 6.0。我不明白的是为什么项目A在NET4.0中正确编译,但在项目B中链接时会产生错误。
我需要在项目B中继续使用NewtonSoft 4.5.0.0(我不可能将项目B升级到JSON NewtonSoft 6.0)。
我也无法升级到NET4.5
我在... \ packages \ Newtonsoft.Json.6.0.8 \ lib中找到了一些与牛顿软件的net45 dll相关的文件夹,并在重建之前删除了它们,没有用。
答案 0 :(得分:1)
这是Visual Studio自身创建的烦人问题。
长话短说:
我是如何解决这个问题的:
另一种解决方法: