#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, который разрешил предупреждения. Но мой первоначальный вопрос все еще остается в силе…