Как правильно указать диапазон версий для зависимости ..? - PullRequest
2 голосов
/ 08 ноября 2019

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

<PackageReference Include="Newtonsoft.Json" Version="[11,13)" />

Однако, когда я пытаюсь установить SDK в другое существующее решение, установка завершается неудачно сследующая ошибка:

NU1603: MySampleSdk 0.0.1 зависит от Newtonsoft.Json (> = 11.0.0 && <13.0.0), но Newtonsoft.Json 11.0.0 не найден. Приблизительно лучшее совпадение с Newtonsoft.Json 11.0.1 было разрешено. </p>

Разве 11.0.1 в >= 11.0.0 && < 13.0.0?

Чего мне здесь не хватает?

1 Ответ

2 голосов
/ 09 ноября 2019

Если вы внимательно прочитаете сообщение NuGet, оно просто скажет вам: «Эй, просто к вашему сведению, была запрошена версия X, но она не существует, поэтому я использовал вместо нее версию Y».

Если вы посмотритена документах для NU1603 вы заметите, что это предупреждение , а не ошибка. Если ваша сборка / восстановление не удалась, это означает, что ваш проект включил обработку предупреждений как ошибок.

Итак, с точки зрения проекта, который потребляет проект, его можно решить, не спрашиваяNuGet ошибка в предупреждениях. В качестве альтернативы вы можете использовать <NoWarn>$(NoWarn);NU1603</NoWarn>, чтобы игнорировать все экземпляры этого предупреждения.

С точки зрения автора пакета, вы будете добрее к своим пользователям, если будете уверены, что минимальная версия всегда является версией, которая существует,Newtonsoft.Json 11.0.0 не существует, поэтому установите минимальную версию 11.0.1.

...