将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.
Web.CMS包nuspec文件的依赖项部分如下所示,因为您可以看到依赖包版本是已作为包更新的一部分安装的版本。
<dependencies>
<dependency id="Core" version="6.1" />
<dependency id="Web" version="6.0" />
<dependency id="Cms.Assemblies" version="[6.0.530,7)"/>
</dependencies>
有没有办法在没有依赖包恢复到旧版本的情况下更新包,就像这里发生的那样?我们可以通过卸载软件包并安装新版本来实现,这是理想的,因为一些软件包被解决方案中的多个项目使用,并且必须分别为每个项目完成。
答案 0 :(得分:0)
这是通过包含-IgnoreDependencies开关来解决的:
Update-Package web.CMS -version 6.5.0-develop-140728152 -IgnoreDependencies