Windows Installer仅支持三段版本号 第三方安装程序自定义版本格式如何实现
关于Windows程序版本号格式的相关说明
你提到的「Windows Installer仅采用major.minor.patch三段版本号」的说法,仅适用于Windows Installer(MSI框架)内置的ProductVersion属性限制,并不约束所有Windows平台安装程序的版本号展示逻辑,具体差异如下:
非三段版本号的实现原理
- 基于MSI框架开发的安装包:Windows Installer要求内置的
ProductVersion字段必须为三段式,每段取值范围为0~65535,不符合该规则的MSI包无法正常安装。但开发者会单独在注册表的程序卸载项中写入自定义的DisplayVersion字段,控制面板的程序列表、系统版本查询接口都会优先读取该字段展示,该字段为无格式限制的字符串,可以自由设置为四段、带特殊标识等任意格式。 - 非MSI框架的安装包:使用NSIS、Inno Setup、自研安装程序、MSIX/AppX新式应用包等其他方案制作的安装包,本身不依赖Windows Installer框架,自然没有版本号段数限制,从安装包标识到写入系统的版本信息都可以自定义格式。
版本号嵌入日期的实现逻辑
这类版本号采用的是日历化版本规范(CalVer),和传统的语义化版本(SemVer,即三段式版本号)属于不同的版本号命名规则,常用的实现逻辑有两类:
- 全日期格式:一般采用
年份.月份.日期.构建号或者年份.月份.补丁号的格式,比如2024.3.15.1201,优势是用户可以直接通过版本号判断发布时间,快速识别版本新旧,适合迭代频繁的工具类、安全类、云服务类软件使用。 - 日期段嵌入格式:将日期相关值作为版本号的某一段使用,比如
主版本.次版本.年积日.构建号,其中年积日指当年的第多少天,仅用于开发者内部识别构建批次,不需要用户理解具体含义。

内容的提问来源于stack exchange,提问作者Indivara
相关产品推荐
相关产品推荐

