Какой смысл диапазонов версий в csproj, если он всегда использует самую низкую версию? - PullRequest
0 голосов
/ 04 января 2019

Так что у меня возникли проблемы с наведением порядка на то, как должна работать версионность пакета nuget. Насколько я понимаю, Version = "6. *" (или [6.0,7.0)) означает, что любая версия 6.x.x является действительной и что по умолчанию предполагается, что она будет использовать самую низкую совместимую версию в этом диапазоне. Правильный? Я предполагал, что это означало, что если у него еще не было версии в этом диапазоне для использования, то он получал бы самую низкую версию, но вместо этого он, похоже, удалял то, что установлено, и заменял его на минимально возможная версия, и это вызывает проблемы.

Пример: В проекте A установлен пакет foo-2.4. Также установлен пакет bar-1.0, который зависит от foo-2.*. Логично, я бы предположил, что установка пакета bar должна быть в порядке, потому что он увидит foo-2.4 и будет использовать его, поскольку он находится в правильном диапазоне, но вместо этого происходит то, что он пытается удалить foo-2.4 и заменить его на foo-2.0, и это не удается, потому что менеджер пакетов обнаруживает понижение версии и прерывает установку.

Я что-то недопонимаю / пропускаю здесь, или менеджер пакетов NuGet не обрабатывает это правильно? Есть ли какая-то особенность в том, что nuspec теперь находится в файле csproj, или, может быть, я должен добавить что-то, чтобы убедиться, что зависимость правильно указана?

...