程序集System.Runtime.Serialization的版本和publicyKeyTokens之间的冲突

7

我有一个老项目,在Visual Studio 2017上打开它时开始警告一个System.Runtime.Serialization程序集的冲突。

问题在于这两个程序集版本都有相同的名称,但是publicyKeyToken不同。

无法解决“System.Runtime.Serialization,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089”和“System.Runtime.Serialization,Version = 2.0.5.0,Culture = neutral,PublicKeyToken = 7cec85d7bea7798e,Retargetable = Yes”之间的冲突。任意选择“System.Runtime.Serialization,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089”。

我尝试在web.config中添加一些运行时重定向组合,但无法使其工作。


同样的问题。在我的情况下,我正在使用VS 2017中的Xamarin,只有当我在Android模拟器中运行应用程序时才会出现这种情况。因此,我需要使用我的实体设备 :/ - user7896145
2个回答

14

在使用VS 2017编译多个项目时,我遇到了同样的问题。在VS 2015中没有报告任何问题。通过向每个存在警告的项目中添加对System.Runtime.Serialization(4.0.0)的引用后,警告消失了。


不要忘记将其包含在您的单元测试项目中!(这让我困惑了一段时间!) - mpowrie
这很好用,除非添加程序集返回“无法添加对'mscorlib'的引用。该组件已由构建系统自动引用。”在这种情况下,我需要打开.vbprol(.csproj)文件,并通过以下方式手动添加引用: - Garet Jax

1
尝试在“程序包管理器控制台”中使用“update-package -reinstall”命令。

谢谢,这解决了我的问题。 - Patrick

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接