Когато актуализирате пакет 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>
Има ли начин да актуализирате пакет без зависимите пакети да се връщат към по-стари версии, както се случва тук? Можем да го направим, като деинсталираме пакета и инсталираме новата версия, но това е идеално, тъй като някои пакети се използват от няколко проекта в едно решение и това трябва да се направи за всеки проект поотделно.
-IgnoreDependencies
и-IncludePrerelease
за Update-Package, за да видя какъв е ефектът. - person Matt Ward   schedule 28.07.2014