【发布时间】:2018-08-30 02:47:58
【问题描述】:
在用于 NuGet 的 .NET 较旧的 packages.config 系统下,I could constrain the possible versions of a package 在使用 Package 元素上的 allowedVersions 属性更新包时被考虑
<package id="Newtonsoft.Json" version="10.0.3" allowedVersions="[10.0.3]" />
当 update-package 在 Visual Studio 中针对包含上述内容的项目运行时,Newtonsoft.Json 不会发生更新,因为我已使用 allowedVersions 属性固定到 10.0.3。
如何在PackageReference 下实现这一点?将semver 语法应用于版本属性只会影响版本恢复 - 它不会限制更新。因此,如果我指定下面的 PackageReference 并运行 update-package,例如,如果 11.0.1 在我的 NuGet 存储库中,我将升级到 11.0.1。
<PackageReference Include="Newtonsoft.Json" Version="[10.0.3]" />
背景
我们依靠命令行工具来更新包,因为我们既有快速移动的内部包(一天更新多次)和更稳定的低移动包(例如:ASP.NET)。在大型代码库中,手动更新 .csproj 文件中的每个依赖项对我们来说根本无法扩展(并且容易出错)。在packages.config 下,我们可以“固定”我们不想升级的第三方包,也可以更新到最新的快速移动依赖项。
【问题讨论】:
标签: c# nuget .net-standard nuget-update packagereference