C# Nuget版本号排序
Nuget包版本号和我们软件应用版本号一样,不过因为稳定性等的考虑,组件版本有更高的要求。预发布版本使用频率更高
版本号介绍,详见我朋友胡承老司机的博客:Nuget包的版本规范 (qq.com)
我这里加一个preview版本,在我这团队用的最多。按排序的话:
-
Alpha 版本:-alpha 后缀,是最初的预发布版本,通常是一个不完整的、包含很多缺陷和未经充分测试的版本。
-
Beta 版本:-beta 后缀,是 Alpha 版本之后的一系列预发布版本,已经包含了较多的新特性和改进,但仍然存在某些缺陷和未经充分测试的功能。
-
Preview 版本:-preview 后缀,是在 RC 版本之前发布的一个预览版本,通常包含所有计划中的新特性和功能,并且已经通过了充分的内部和外部测试,但仍可能存在一些问题和未知的 bug。它的发布旨在让用户能够提前体验和了解新的功能和特性。
-
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的此版本时会引用异常。
作者:唐宋元明清2188
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利。