随机抽取工具的每一次发布都用两套标识来标记:版本号(给人看)和版本代码 vercode(给程序比较)。更新程序并不解析版本号的文字,而是只比较版本代码的大小来判断有没有新版本。
版本号采用类似语义化版本的多段式写法,遇到测试版时在末尾追加 -beta 序号:
主版本.次版本[.热更新][.修订版][-beta序号]
2.4 正式版
2.4.1 正式版(热更新)
2.5.3-beta 测试版(正式版发布前)
2.5.3 正式版
2.5.3.1-beta 测试版(第一阶段)
2.5.3.1-beta2 测试版(第二阶段)
2.5.3.1 正式版(修订版)
V2.5.3.1 版本实际不存在。
由于开发 V2.5.3.1 过程中,更新内容较多,故直接发布了 V2.6 版本。
| 组成部分 | 含义 | 示例 |
|---|---|---|
| 主版本 | 发生大范围重构或大更新时递增 | 2.5.3 |
| 次版本 | 新增功能模块时递增 | 2.5.3 |
| 热更新 | 修复问题、优化体验时递增 | 2.5.3 |
| 修订号 | 在某个热更新之上继续开发 | 2.5.3.1 |
| -beta 序号 | 测试版标记,可能分阶段 | 2.5.3.1-beta2 |
版本代码是一个单调递增的整数,由版本号的数字直接拼接而成。
在 V2.4 之前,版本代码为4位:
vercode = 主版本(1位) + 次版本(1位) + 热更新(1位) + 版本标识(1位)
自 V2.5 及以后,固定为 6 位:
vercode = 主版本(1位) + 次版本(1位) + 热更新(1位) + 修订号(1位) + 版本标识(1位) + 阶段(1位)
| 版本号 | 版本代码 | 拆解 |
|---|---|---|
| 2.5 | 250000 | 2 | 5 | 0 | 0 | 0 | 0 |
| 2.5.1 | 251000 | 2 | 5 | 1 | 0 | 0 | 0 |
| 2.5.2 | 252000 | 2 | 5 | 2 | 0 | 0 | 0 |
| 2.5.3-beta | 252031 | 2 | 5 | 2 | 0 | 3 | 1 |
| 2.5.3 | 253000 | 2 | 5 | 3 | 0 | 0 | 0 |
| 2.5.3.1-beta | 253031 | 2 | 5 | 3 | 0 | 3 | 1 |
| 2.5.3.1-beta2 | 253032 | 2 | 5 | 3 | 0 | 3 | 2 |
| 2.5.3.1 | 253100 | 2 | 5 | 3 | 1 | 0 | 0 |
详细说明:
3 表示该版本为测试版,第6位的数字代表当前版本阶段(如果分为多个阶段,否则默认为 1 )。0 是正式版、3 是测试版。例如:V2.5.3-beta的版本代码是
252031,其中,2520就代表上一个正式版是V2.5.2,3表示是测试版,1表示是第一阶段。
更新程序(update.exe)与主程序的检测更新逻辑完全一致,均只做数值比较:
metadata.json 中 version.vercode 作为远程版本代码。preview.vercode,取两者中较大的一个作为远程版本。例如当前正式版 2.5.3 的版本代码是 253000,而测试版 2.5.3.1-beta2 是 253032。因此发布 2.5.3.1 正式版时,版本代码必须大于 253032,即 253100。
src/core/info.pyrct_version = "2.5.3.1-beta2" # 版本号
rct_vercode = 253032 # 版本代码
rct_date = "2026-09-12" # 发布日期
主程序会把这三项显示在以下位置:
metadata.json(仓库根目录){
"version": {
"version": "2.5.3",
"date": "2026-09-06",
"lastver": 252031,
"vercode": 253000
},
"preview": {
"version": "2.5.3.1-beta2",
"date": "2026-09-12",
"lastver": 253031,
"vercode": 253032
}
}
| 字段 | 说明 |
|---|---|
version | 当前正式版信息 |
preview | 当前测试版信息;没有测试版时可省略 |
*.version | 版本号 |
*.date | 发布日期 |
*.vercode | 版本代码,更新程序比较用的就是它 |
*.lastver | 上一个版本的版本代码,仅作记录,程序不读取 |
官网首页与下载页通过 js/getmeta.js 读取该文件,动态显示「最新版本」「发布日期」「最新测试版」等信息。
metadata.json:正式版填进 version,测试版填进 preview,并把上一个版本的版本代码写进 lastver。V<版本号>,例如 V2.5.3;安装包命名为 RandomCallTool_Setup_V<版本号>.exe,放在对应 Release 下。<div> 设置 id 为版本代码(供首页「查看更新日志」按钮定位)。例如:V2.5.3© 2025~2026 ElofHew. All rights reserved.