Редакция привязки сборки не работает для пакета - PullRequest
0 голосов
/ 11 апреля 2020

Я работаю с решением WEB API, в котором есть несколько проектов, и проекты используют разные пакеты и версии в зависимости от их назначения. Для иллюстрации проблемы мы рассмотрим 3 проекта

  • API (имеет ссылки на оба проекта ниже, имел Newtonsoft. Json версия 6.0.4), и он установлен как проект StartUp
  • Модели (не было пакетов)
  • Core (имел Newtonsoft. Json версия 10)

Проблема возникла, когда я добавил Newtonsoft. Json версия пакета 10 к проекту Models . Во время выполнения я начал получать сообщение об ошибке: Не удалось загрузить файл или сборку 'Newtonsoft. Json, Версия = 10.0.0.0 ....

WRN: Comparing the assembly name resulted in the mismatch: Major Version

Итак, я проверил .config и .csproj проекта Models, где я добавил новый пакет, и у них были ссылки на версию 10, а <HintPath> также указывал на версию 10 пакета Newtonsoft. Json.

Проект API: <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />.
Модели: <bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
Ядро: <bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />

Мой вопрос, почему он выдает мне эту ошибку, когда каждый проект имеет перенаправление на свою версию пакета? Чтобы еще больше сбить с толку, проект Core использует версию 10 Newtonsoft. Json пакет без проблем в течение нескольких месяцев, и я проверил его конфигурацию и .csproj, и он имел те же строки относительно пакета Newtonsoft, что и проект Models ...

Так почему же перенаправления работают для проекта Core, а не для проект Models?

Я пытался переустановить р ackage, перестройка, ручное добавление ссылки на пакет, проверка пространств имен в теге и другие вещи, которые я читал в сообщениях stackoverflow, но я не смог найти причину проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...