Так что у меня возникли проблемы с наведением порядка на то, как должна работать версионность пакета 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, или, может быть, я должен добавить что-то, чтобы убедиться, что зависимость правильно указана?