Nuget и конфликтующие зависимости

#c# #.net #dependencies #nuget #nancy

#c# #.net #зависимости #nuget #нэнси

Вопрос:

Мы используем Nuget для включения нескольких зависимостей в наш проект:

  • Nancy 1.4.3
  • Нэнси.Проверка подлинности.Формы 1.4.1 (это само по себе зависит от Nancy> = 1.4.1)

Это приводит к предупреждению о сборке:

Обнаружены конфликты между разными версиями одной и той же сборки…

Включение вывода диагностической сборки показывает:

Произошел конфликт между «Nancy, Version = 1.4.2.0, Culture = neutral, PublicKeyToken = null» и «Nancy, Version = 1.4.1.0, Culture = neutral, PublicKeyToken = null»…

Nancy, Version = 1.4.2.0, Culture = neutral, PublicKeyToken = null» был выбран потому, что он был основным, а «Nancy, Version = 1.4.1.0, Culture = neutral, PublicKeyToken = null» не был выбран…

Наши варианты:

1) Понизить версию до использования Nancy 1.4.1

2) Используйте перенаправления привязки для принудительного использования более поздней версии — это избавит от предупреждения, но разумно ли это?

3) Что-то еще?

Каков наилучший способ решить эту проблему?

В качестве дополнительного замечания, похоже, что библиотека DLL Nancy 1.4.3, загруженная Nuget, имеет версию файла 1.4.2.0 и версию продукта 1.4.3 (не уверен, что это правильно).

ОБНОВЛЕНИЕ: предупреждения устранены, однако реальный вопрос:

Разумно ли использовать перенаправления привязки? Может ли это привести к ошибкам? Должны ли мы предполагать, что любая зависимость Nuget хорошо протестирована на ее зависимости (минимальная версия и более поздние версии)?

Комментарии:

1. В проекте, где Nancy. Проверка подлинности. Формы 1.4.1 — это явная ссылка на Nancy 1.4.3, которая должна устранить проблему.

2. @R.Rusev спасибо, но у нас уже есть эта ссылка.

3. Я только что протестировал 2 проекта Project A со ссылкой на Nancy. Проверка подлинности. Формы 1.4.1 и проект B со ссылкой на Nancy 1.4.3.. Проект B ссылается на проект A. После того, как я обновил версию Project A до Nancy 1.4.3. предупреждения не было. Итак, вы уверены, что все проекты ссылаются на правильную версию Nancy?

4. @R.Rusev Я только что сделал то же самое, за исключением того, что оба проекта ссылались на Nancy amp; Nancy. Проверка подлинности. Формы. Это не приводит к появлению каких-либо предупреждений, но в выводе диагностической сборки все еще присутствуют конфликтные сообщения. Оказывается, что мои предупреждения о сборке на самом деле были вызваны конфликтом Newtonsoft. Ссылки на Json. Я удалил несвязанную ссылку из одного из проектов и удалил ту же зависимость в Nuget package manager, это, казалось, шокировало менеджера пакетов, заставив его также добавить перенаправления привязки для Newtonsoft. Json, который разрешил предупреждения. Но мой первоначальный вопрос все еще остается в силе…