Почему .net показывает конфликт версий для того же пакета nuget, который является внутренней зависимостью для сторонней библиотеки / пакета? - PullRequest
1 голос
/ 03 апреля 2019

Конфликтующие версии библиотеки Newtonsoft.json.

Действия по воспроизведению проблемы:

  1. Создать 2 .net c # проекта
  2. Проект 1 включает IdentityModel с некоторым методом
  3. Проект 2 включает Microsoft.AspNet.WebApi.OwinSelfHost с некоторым методом
  4. Упакуйте их, создайте пакет nuget и опубликуйте его локально (будет создано 2 пакета)
  5. Теперь создайте тестовый проект и установите в него оба пакета nuget.
  6. Вызовите метод из этих установленных пакетов. Вы получите ошибку конфликта относительно Newtonsoft.json

У меня есть два пользовательских плагина, разработанных поверх Kafka и REST. Для полной реализации плагина я использую сторонние библиотеки как часть зависимости. Зависимость внутренне использует пакет Newtonsoft.Json с их конкретной версией.

использование пакета для разработки плагина kafka package use for developing kafka plugin

использование пакета для разработки плагина REST package use for developing REST plugin

.net не должен отображать ошибку

System.Reflection.TargetInvocationException: исключение было брошенный целью вызова. ----> System.IO.FileLoadException: не удалось загрузить файл или сборку 'Newtonsoft.Json, версия = 6.0.0.0, культура = нейтральная, PublicKeyToken = 30ad4fe6b2a6aeed 'или одна из его зависимостей. определение манифеста расположенной сборки не соответствует сборке ссылка. (Исключение из HRESULT: 0x80131040)

как сторонняя библиотека должна ссылаться на свой пакет в соответствии с их версией. Для меня, если я перейду на

% USERPROFILE% \ .nuget пакеты

местоположение. Я вижу график версий versions для newtonsoft.json, и сторонние библиотеки должны использовать их во время выполнения. Версии 6.0.4 и 11.0.2 должны загружаться во время выполнения.

1 Ответ

0 голосов
/ 03 апреля 2019

используйте команду Update-Package , чтобы обновить все пакеты во всех проектах

...