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版本规则对预览版本号俩种情况都是完全支持的。
C# Nuget版本号排序的更多相关文章
- list中的对象或者map中的版本号排序 version排序
经常会用到版本号排序,直接把他封装成一个工具用起来比较方便. List<A> aList = new ArrayList<>(); ...aList 赋值 ... Collec ...
- MySQL 版本号排序
1.业务背景 版本检查接口返回版本号排序时出现如下图所示问题 普通的查询按数字值逐级比较,导致版本号高的排在了后面,这样版本检查根据版本号排序倒排取出来的不是最新的版本号,本文就此问题查询了诸多方法, ...
- 获取 Nuget 版本号
本文告诉大家通过命令行获取 Nuget 的版本号 在 Nuget 中没有 -version 和 -v 和 --version 等写法,只需要直接输入 nuget 在第一行就会显示版本号 nuget N ...
- 关于oracle数据库中获取版本号类数据最大值的sql
目前还在高度加班中,但是本次内容怕自己忘记,好不容易解决的,所以赶紧先随便抽点时间记录下,也没来得及考虑效率什么的优化问题,免得以后忘记了. 测试库结构如下: 表名为 testtab 字段名为test ...
- 165 Compare Version Numbers 比较版本号
比较两个版本号 version1 和 version2.如果 version1 大于 version2 返回 1,如果 version1 小于 version2 返回 -1, 除此以外 返回 0.您可 ...
- 介绍了ASP。净样板
下载sample application (or see on Github) 内容 问题介绍什么是ASP.NET样板文件NET Boilerplate不是开始创建空的web应用程序从模板域层 关于名 ...
- 分享一个CQRS/ES架构中基于写文件的EventStore的设计思路
最近打算用C#实现一个基于文件的EventStore. 什么是EventStore 关于什么是EventStore,如果还不清楚的朋友可以去了解下CQRS/Event Sourcing这种架构,我博客 ...
- Entity Framework7 入门之全功能.NET版本下使用EF7(含源码)另附数据迁移常见错误处理
Entity Framework7 入门之全功能.NET(Console, WinForms, WPF等)使用EF7 昨天,我们介绍了EF的新特性和开发计划,如果你还不了解,请移步 Entity Fr ...
- shell学习笔记
shell学习笔记 .查看/etc/shells,看看有几个可用的Shell . 曾经用过的命令存在.bash_history中,但是~/.bash_history记录的是前一次登录前记录的所有指令, ...
随机推荐
- awk command
https://www.cnblogs.com/bluevitality/p/6691041.html
- 简单的继承练习——疑问:私有属性在类的方法内调用时,有必要使用get,set方法嘛?
要求: 创建一个Circle类,设置半径属性和返回面积的方法,在无参构造器中初始化半径值为1. 创建一个Cylinder类,继承Circle类,设置属性高和返回体积的方法,在无参构造器中初始化长度为1 ...
- 如何去掉Discuz论坛标题的Powered by Discuz!
找到如下的位置 根目录/template/default/common/ 找到 header_common.htm 2 原来的代码 <title><!--{if !empty($na ...
- jmeter工具2个打开方法+配置黑窗口启动jmeter工具。
实现从cmd黑窗口,输入jmeter,即可弹出jmeter工具界面.方法一:直接去安装在的目录,找jmeter_5.4.bat文件,双击即可打开工具. 方法二: 在环境变量中,配置JMETER_HOM ...
- arp 基本功能
地址解析协议(英语:Address Resolution Protocol,缩写:ARP)是一个通过解析网络层地址来找寻数据链路层地址的网络传输协议,它在IPv4中极其重要.ARP最初在1982年的R ...
- python print 一个进度条
import time scale=100 print("执行开始".center(scale+28,'-')) start = time.perf_counter() for i ...
- js 小数和百分数的转换
百分数转化为小数 function toPoint(percent){ var str=percent.replace("%",""); str= str/10 ...
- 深入理解 Python 虚拟机:复数(complex)的实现原理及源码剖析
深入理解 Python 虚拟机:复数(complex)的实现原理及源码剖析 在本篇文章当中主要给大家介绍在 cpython 虚拟机当中是如何实现 复数 complex 这个数据类型的,这个数据类型在 ...
- J - Straight Master Gym - 101775J 差分
题意:纸牌顺子:连续的3张或连续的4张或连续的5张为顺子.手中的牌共有n个数字,每个数字是a[i]个,能不能把手中所有的牌都是属于顺子. 1 ≤ T ≤ 100. 1 ≤ N ≤ 2 × 105. 0 ...
- 如何在 Apinto 实现 HTTP 与gRPC 的协议转换 (上)
什么是 gRPC 像gRPC是由google开发的一个高性能.通用的开源 RPC 框架,主要面向移动应用开发且基于HTTP/2协议标准而设计,同时支持大多数流行的编程语言. gRPC基于 HTTP/2 ...