如何解决Visual Studio和Xamarin Studio中2个mscorlib版本之间的冲突?

时间:2016-08-11 11:57:09

标签: c# xamarin visual-studio-2015 xamarin-studio

超过2天我一直试图修复此错误,但我没有成功。

这是错误:

  

无法解决" mscorlib,Version = 2.0.5.0之间的冲突,   Culture = neutral,PublicKeyToken = 7cec85d7bea7798e"和" mscorlib"。   选择" mscorlib,Version = 2.0.5.0,Culture = neutral,   公钥= 7cec85d7bea7798e"任意。

我搜索过它,很多人都遇到了这个问题,但我无法找到解决方法。

最后,我们如何找到解决这两个引用之间冲突的方法?

3 个答案:

答案 0 :(得分:1)

我没有答案,但可以提供以下信息:

  1. 我有一个空白的Xamarin.Forms应用程序,仅适用于Android。我可以毫无错误地构建和部署这个。
  2. 我从Xamarin网站下载了Xamarin.Forms示例,仅保留了Android版本。在这种情况下,我可以重建解决方案而不会出现任何错误;但是,当我尝试“不调试开始”时,会收到您报告的确切错误。

从这些结果中,我收集了以下内容:

  1. mscorlib版本之间的冲突与Visual Studio 17的配置无关,而与应用程序的配置有关。
  2. 包含的第二个链接提到安装特定版本的newtonsoft.json。由于这是一个Nuget软件包,我认为问题可能出在这些软件包的特定版本上。我的两个应用程序都使用相同的程序包,但是调试过程不一定使用这些程序包的相同功能。

我希望这会有所帮助。

答案 1 :(得分:1)

我面临的问题:无法解决“ mscorlib,Version = 4.0.0.0,Culture = neutral,......

之间的冲突

到目前为止,我尚未找到根本原因,但我已按照步骤解决了该问题,

  1. 打开Android设备管理器,然后尝试启动感兴趣的android模拟器。
  2. 如果启动并指出一些错误:声明要进行“恢复出厂设置”,请停止模拟器并执行相同的操作。
  3. 尝试启动模拟器,它可以工作。

希望这对您也有用!

答案 2 :(得分:0)

尝试在配置文件中添加到assemblyBinding部分。

您可以添加bindingRedirect来指示框架在任何一个请求时使用哪个版本的程序集加载(使用更高的版本号)。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="mscorlib" publicKeyToken="7cec85d7bea7798e" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-2.0.5.0" newVersion="2.0.5.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>