Моя компания сейчас использует nuget для упаковки всех наших общих сборок. Мы также начали управление версиями на основе semver с использованием тегов.
У меня есть ситуация, когда nuget не работает так, как я ожидал.
У меня есть 3 общие сборки ....
- Enum
- Common
- BusinessLogic
В отношении ссылок на пакеты ...
- Common => Enum
- BusinessLogic => Common, Enum
причина, по которой BusinessLogic зависит от Common и Enum, заключается в том, что мне не нужно обновлять зависимость Common (и перестраивать, упаковывать, публиковать), когда ему не нужно использовать новое перечисление, добавленное просто для использования в BusinessLogic
Итак, я добавляю enum и хочу использовать его в BusinessLogic.
Это версии всего, прежде чем я это сделаю ...
- Enum = 1.4.0
- Общий = 1.2.1
- BusinessLogic = 2.0.1
Теперь я добавляю новое значение enum, которое хочу использовать в BusinessLogic, в проект Enum и собираю, упаковываю, публикую ...
- Enum = 1.5.0
- Общий = 1.2.1
- BusinessLogic = 2.0.1
Теперь я делаю изменения в BusinessLogic, фиксирую, толкаю, упаковываю и т. Д ...
- Enum = 1.5.0
- Общий = 1.2.1
- BusinessLogic = 2.1.0
Итак, теперь зависимости выглядят так ...
- Common => Enum 1.4.0
- BusinessLogic => Enum 1.5.0
Теперь я бегу ...
nuget pack BusinessLogic.csproj
Я ожидаю, что nuget увидит, что Common требует 1.4.0 Enum, но BusinessLogic требует 1.5.0 и поэтому добавляет зависимость в пакет для Enum >= 1.5.0
, но в Enum вообще нет зависимости, Я думаю, что предполагается, что Common выполнит это.
Это поведение задумано?