在 .NET 的旧版packages.config
NuGet 系统下,我可以allowedVersions
通过使用Package 元素上的属性来限制在更新包时考虑的包的可能版本
<package id="Newtonsoft.Json" version="10.0.3" allowedVersions="[10.0.3]" />
在update-package
Visual Studio 中为包括上述内容的项目运行时,不会发生更新,Newtonsoft.Json
因为我已使用该allowedVersions
属性固定到 10.0.3。
我怎样才能在 下实现这一点PackageReference
?将semver语法应用于 Version 属性只会影响恢复的版本- 它不会限制更新。因此,如果我指定以下内容PackageReference
并运行update-package
,例如,如果 11.0.1 在我的 NuGet 存储库中,我将升级到 11.0.1。
<PackageReference Include="Newtonsoft.Json" Version="[10.0.3]" />
背景
我们依靠命令行工具来更新包,因为我们既有快速移动的内部包(一天更新多次)和更稳定的低移动包(例如:ASP.NET)。在大型代码库中,手动更新.csproj
文件中的每个依赖项对我们来说根本无法扩展(并且容易出错)。在packages.config
下面,我们可以“固定”我们不想升级的第三方包,也可以更新到最新的快速移动依赖项。