我们通常在制作NuGet包的时候,会给包一个版本号,但是NuGet包的版本号后面为啥还有-alpha这样子字符呢?

这不得不提下,关于NuGet的版本号规范。

版本号定义

Major.Minor.Patch[-Suffix] ([options] 方括号的内容表示可选项,非必填)

语义说明:

  Major:主版本号,重大更改
  Minor:次版本号,新增功能,但可向后兼容
  Patch:修订号,仅可向后兼容的 bug 修复
  -Suffix(可选):表示预发布版本,可以是任何文本。以下是推荐的写法
    -alpha:Alpha 版本,通常用于在制品和试验品。
    -beta:Beta 版本,通常指可用于下一计划版本的功能完整的版本,但可能包含已知 bug。
    -rc:候选发布,通常可能为最终(稳定)版本,除非出现重大 bug。

版本号示例

1.0.89
1.0.0-alpha
1.2.4-rc
1.25.4-beta
1.25.312-prerelease

版本范围

版本范围主要是用于我们制作nuget包时,包的版本依赖限制。

.nuspec 文件中的引用

<dependency> 元素中的 version 属性描述了依赖项可接受的范围版本。

<!-- Accepts any version 6.1 and above. -->
<dependency id="ExamplePackage" version="6.1" />

<!-- Accepts any version above, but not including 4.1.3. Could be
     used to guarantee a dependency with a specific bug fix. -->
<dependency id="ExamplePackage" version="(4.1.3,)" />

<!-- Accepts any version up below 5.x, which might be used to prevent pulling in a later
     version of a dependency that changed its interface. However, this form is not
     recommended because it can be difficult to determine the lowest version. -->
<dependency id="ExamplePackage" version="(,5.0)" />

<!-- Accepts any 1.x or 2.x version, but not 0.x or 3.x and higher. -->
<dependency id="ExamplePackage" version="[1,3)" />

<!-- Accepts 1.3.2 up to 1.4.x, but not 1.5 and higher. -->
<dependency id="ExamplePackage" version="[1.3.2,1.5)" />

参考文献:https://learn.microsoft.com/zh-cn/nuget/concepts/package-versioning。

微信公众号:

承哥技术交流小作坊

欢迎转载分享,如若转载,请标注署名。


本文会经常更新,请阅读原文: https://huchengv5.gitee.io//post/NET-NuGet%E5%8C%85%E7%9A%84%E7%89%88%E6%9C%AC%E8%A7%84%E8%8C%83.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。

知识共享许可协议 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名胡承(包含链接: https://huchengv5.gitee.io/ ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请 与我联系