我有一个 dotnet 项目,已packages.lock.json提交到我的 Nuget 存储库中。提交的版本有一个依赖属性,如下所示:
dependencies: {
...
"MQTTnet": "3.0.15",
...
}
Run Code Online (Sandbox Code Playgroud)
当我使用 Rider IDE(来自 Jetbrains)打开项目时,Nuget 似乎在后台自动运行,并将版本更改为使用此范围语法:
dependencies: {
"MQTTnet": "[3.0.15, )",
...
}
Run Code Online (Sandbox Code Playgroud)
当我检查锁定文件时,我可以看到某些版本正在使用范围,而其他版本似乎使用特定版本。我想避免锁定文件中的随机更改,除非我明确决定更新我的包依赖项,并且当我更新时,我希望对何时使用范围与特定版本有更多的控制。
我如何理解这些变化发生的原因以及导致这些变化的原因?
这是我对这些变化的理解:
这些版本符合 SemVer(就像 NPM 包一样)。指定三位数字(用点连接)被视为精确版本。
然而,新格式使用版本范围;它被称为包容性最小值。作为最终用户(而不是库作者),这不是我们想要的。但是,因为所有三个数字都在那里,所以这是一个精确的版本。
因此,像这样的“普通版本”
1.2.3被视为版本范围,相当于[1.2.3 , )(https://github.com/renovatebot/renovate/issues/6610#issuecomment-651259846)
为什么现在会发生这种情况,我还没有找到。我怀疑 NuGet 强制使用这种新格式来支持版本范围。
更多信息请参见:https ://learn.microsoft.com/en-us/nuget/concepts/package-versioning
| 归档时间: |
|
| 查看次数: |
678 次 |
| 最近记录: |