C# Nuget版本号排序

Nuget包版本号和我们软件应用版本号一样,不过因为稳定性等的考虑,组件版本有更高的要求。预发布版本使用频率更高

版本号介绍,详见我朋友胡承老司机的博客:Nuget包的版本规范 (qq.com)

我这里加一个preview版本,在我这团队用的最多。按排序的话:

  1. Alpha 版本:-alpha 后缀,是最初的预发布版本,通常是一个不完整的、包含很多缺陷和未经充分测试的版本。

  2. Beta 版本:-beta 后缀,是 Alpha 版本之后的一系列预发布版本,已经包含了较多的新特性和改进,但仍然存在某些缺陷和未经充分测试的功能。

  3. Preview 版本:-preview 后缀,是在 RC 版本之前发布的一个预览版本,通常包含所有计划中的新特性和功能,并且已经通过了充分的内部和外部测试,但仍可能存在一些问题和未知的 bug。它的发布旨在让用户能够提前体验和了解新的功能和特性。

  4. RC 版本:-rc 后缀,是 Release Candidate(候选版本)的缩写,是在 Beta 版本之后发布的一个最终测试版本,通常在该版本中不再添加新的功能和特性,主要是针对已知的 bug 进行修复和优化,这个版本可能会成为最终版本。

比如1.0.1-alpha.2,表示1.0.1有个开发联调版本alpha,alpha版本下面有构建号次数2。

也有开发在构建号后添加预览版本:1.0.1.2-alpha,而VS也是支持的。比如:

引用微软的Nuget.Versioning包对Nuget版本进行排序,输出一个Demo看看

 1     var list = new List<string>();
 2     list.Add("1.0.1");
 3     list.Add("1.0.2");
 4     list.Add("1.0.2.1");
 5     list.Add("1.0.2-preview");
 6     list.Add("1.0.1.2-preview1");
 7     list.Add("1.0.1.24-preview1");
 8     list.Add("1.0.1-preview1.2");
 9     list.Add("1.0.1-preview.2");
10     list.Add("1.0.1-preview1");
11     list.Add("1.0.1-preview2");
12     var nugetVersions = list.Select(i => new NuGetVersion(i)).ToList();
13     nugetVersions.Sort();
14     Debug.WriteLine(string.Join("\r\n", nugetVersions));

输出结果:

从这个demo可以看出,Nuget版本规则对预览版本号俩种情况都是完全支持的。

注:虽然排序规则支持,但1.0.1-preview1.2不建议使用,在VS引用Nuget的此版本时会引用异常。

posted @ 2023-04-03 18:58  唐宋元明清2188  阅读(133)  评论(0编辑  收藏  举报