Как разрешить конфликт между 2 версиями mscorlib в Visual Studio и Xamarin Studio?

В течение более 2 дней я пытаюсь исправить эту ошибку, но мне это не удалось.

Это ошибка:

Невозможно разрешить конфликт между "mscorlib, Version = 2.0.5.0, Культура = нейтральная, PublicKeyToken = 7cec85d7bea7798e" и "mscorlib". Выбор "mscorlib, Version = 2.0.5.0, Culture = нейтральный, PublicKeyToken = 7cec85d7bea7798e" произвольно.

Я искал об этом, и у многих людей была эта проблема, но я не мог найти для этого решения.

Наконец, как мы можем найти способ разрешить конфликт между этими двумя ссылками?

Ответ 1

У меня нет ответа, но я могу дать следующее:

  1. У меня есть пустое приложение Xamarin.Forms, предназначенное только для Android. Я могу построить и развернуть этот без ошибок.
  2. Я загрузил пример Xamarin.Forms с веб-сайта Xamarin и сохранил только версию для Android. В этом случае я могу восстановить решение без каких-либо ошибок; однако, когда я пытаюсь запустить без отладки, я получаю точную ошибку, о которой вы сообщаете.

Из этих результатов я собираю следующее:

  1. Конфликт между версиями mscorlib не связан с конфигурацией Visual Studio 17, а с конфигурацией приложения.
  2. Вторая из ссылок, которые вы включили, упоминает установку конкретной версии newtonsoft.json. Поскольку это пакет Nuget, я думал, что проблема связана с конкретными версиями этих пакетов. Оба моих приложения используют одни и те же пакеты, но, возможно, процесс отладки не обязательно использует те же функции этих пакетов.

Надеюсь, это поможет.

Ответ 2

Запустить режим администратора Visual Studio

Ответ 3

Попробуйте добавить в assemblyBinding раздел привязки в ваших файлах конфигурации.

Вы можете добавить bindingRedirect чтобы 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>

Ответ 4

У меня была такая же проблема.

Решено теперь надеюсь...

Я не уверен, почему это происходит, но мне удалось запустить без ошибок, выполнив следующие действия:

  1. Создать новый проект (пусть загрузится) ->
  2. Управление нюгетами и их обновление ->
  3. создать новый файл content.page в файлах проекта в моем случае "ProjectName".Android ->
  4. Теперь запустите ваш эмулятор

Сделав это выше, это сработало для меня, попробовал несколько раз! (Если это не сработает, я уверен, что вы слышали об удалении bin и obj файлов, которые также работают). Удачи