Как предотвратить возврат nuget к более старым версиям зависимых пакетов при обновлении пакета

При обновлении пакета nuget до новой версии зависимости обновляемого пакета удаляются и восстанавливаются как самая низкая допустимая версия этих зависимых пакетов. Вывод консоли диспетчера пакетов выглядит следующим образом:

Update-Package web.CMS -version 6.5.0-develop-140728152

Updating 'Web.CMS' from version '6.5.0-Trunk-1406031714' to '6.5.0-develop-1407281525' in project 'App.Cms'.

Remove 'Web.CMS 6.5.0-Trunk-1406031714' from project App.Cms.

Remove 'Cms.Assemblies 6.1.379' from project App.Cms.

Remove 'Web 7.3.0' from project App.Cms.

Remove 'Core 8.0.0-Trunk-1406251804' from project App.Cms.

Add 'Core 6.1.0' to project App.Cms.

Add 'Web 6.0.0' to project App.Cms.

Add 'Cms.Assemblies 6.0.530' to project App.Cms.

Add 'Web.CMS 6.5.0-develop-1407281525' to project App.Cms.

Раздел зависимостей файла nuspec пакета Web.CMS выглядит следующим образом, как вы можете видеть, зависимые версии пакетов — это те, которые были установлены как часть обновления пакета.

<dependencies>
   <dependency id="Core" version="6.1" />
   <dependency id="Web" version="6.0" />
   <dependency id="Cms.Assemblies" version="[6.0.530,7)"/>
</dependencies>

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


person Jason    schedule 28.07.2014    source источник
comment
Я бы попробовал несколько комбинаций параметров -IgnoreDependencies и -IncludePrerelease для Update-Package, чтобы посмотреть, как это повлияет.   -  person Matt Ward    schedule 28.07.2014
comment
Обновите NuGet. Это поведение было исправлено в последней версии.   -  person dodexahedron    schedule 28.07.2014
comment
Я использую последнюю версию, 2.8.5. Насколько я понимаю, этот возврат к самой старой версии был введен в версии 2.8.   -  person Jason    schedule 29.07.2014


Ответы (1)


Это было исправлено путем включения переключателя -IgnoreDependencies:

Update-Package web.CMS -version 6.5.0-develop-140728152 -IgnoreDependencies

person Jason    schedule 29.07.2014