Как запретить Nuget автоматически обновлять версии пакетов (второстепенные)?

В решении VS у меня есть зависимости (в файле packages.config)

  • пакет A версии 2.0.0, который зависит от версии пакета B >= 5.0.0.0. Последняя версия A — 2.1.0 и имеет те же зависимости, что и в 2.0.0.
  • пакет B, версия 10.0.0.0. Последняя версия 10.0.5.2.

Я хочу обновить пакет A до версии 2.1.0, поэтому я попробовал команду

update-package A

в «консоли диспетчера пакетов». Но как ни странно, Nuget также обновляет пакет B до 10.0.5.2.

Кто-то сказал мне, что по умолчанию Nuget обновится до версии с исправлением ошибок, но я не нашел ссылку об этом.

Кто-нибудь знает, как сказать Nuget не обновлять другие пакеты автоматически?

Для информации, я использую Nuget 2.5, поэтому согласно http://docs.nuget.org/docs/reference/versioning зависимости больше не обновляются во время установки пакета

Спасибо.


person Son    schedule 03.05.2013    source источник
comment
Это ваши собственные внутренние пакеты NuGet или они существуют в официальном репозитории NuGet? Если последнее, возможно, было бы полезно, если бы вы могли указать, с какими пакетами и версиями вы столкнулись с этой проблемой.   -  person Julian    schedule 06.05.2013


Ответы (1)


Насколько мне известно, это невозможно сделать, и это основная причина, по которой мы создали Инструменты клиента ProGet.

Возможно, вам удастся избежать указания явной версии, заключив ее в квадратные скобки (например, [10.0.0.0]) в файле packages.config, но это все еще, казалось, захватило версию исправления ошибки, когда я попробовал ее — хотя я не тестировал ее на последняя версия еще.

Для справки: алгоритм выбора версии зависимостей NuGet подробно описан здесь: http://blog.davidebbo.com/2011/01/nuget-versioning-part-2-core-algorithm.html

person John Rasch    schedule 06.05.2013
comment
Эта ссылка на алгоритм версии зависимостей NuGet немного устарела, и теперь с выпуском NuGet 2.5 все могло измениться (docs.nuget.org/docs/release-notes/), особенно обратите внимание на часть о том, что зависимости больше не обновляются без необходимости во время установки пакета. Дополнительные сведения см. в соответствующем рабочем элементе (nuget.codeplex.com/workitem/1681) и ветку обсуждения (nuget.codeplex.com/discussions/436712). - person Julian; 07.05.2013