NanaZip 版本管理与发布渠道体系完整指南:Preview 与稳定版双通道机制详解
【免费下载链接】NanaZipThe 7-Zip derivative intended for the modern Windows experience项目地址: https://gitcode.com/JRJSheep/NanaZip
NanaZip 是一款面向现代 Windows 体验的 7-Zip 衍生版解压软件。本文带你完整看懂NanaZip 版本管理与双发布渠道(Preview 预览版 + 稳定版)的运作机制:版本号里的"天数密码"、从 Preview 到 Update 的标签演进、两条渠道在工程中的具体差异,以及背后自动化的版本刷新工具链。无论你是普通用户还是想参与贡献的新手,读完后都能轻松分辨自己装的是哪个版本。
一、双通道发布体系总览 📦
NanaZip 采用类似 Windows Insider 的双通道发布模型,通过不同的应用包标识(Package Identity)区分两条渠道,两者可以在同一台电脑上并存安装、互不覆盖。
| 对比项 | 稳定版(Stable) | 预览版(Preview) |
|---|---|---|
| 显示名称 | NanaZip | NanaZip Preview |
| 包名称 | 40174MouriNaruto.NanaZip | 40174MouriNaruto.NanaZipPreview |
| 包标识 ID | CAE3F1D4-7765-4D98-A060-52CD14D56EAB | 469D94E9-6AF4-4395-B396-99B1308F8CE5 |
| 图标资源 | Assets/NanaZip.ico | Assets/NanaZipPreview.ico |
| 包资源目录 | Assets/PackageAssets/ | Assets/PreviewPackageAssets/ |
两条渠道的应用图标也是刻意做了视觉区分的:
这套渠道标识的完整对照表记录在 Documents/ChannelSwitchNote.md 中。
二、版本号怎么读?两种格式一次讲清 🔢
NanaZip 的版本号分为"简单版本"和"二进制版本"两种形态,规则定义在 Documents/Versioning.md。
简单版本:主版本.次版本 + 发布标签
格式为<Major>.<Minor> <Tag>,例如9.0 Preview 1。其中:
- Major / Minor:主版本号和次版本号,代表大版本迭代
- Tag(标签):体现该版本处于发布周期的哪个阶段(下一节详解)
二进制版本:四段式版本号
格式为<Major>.<Minor>.<Build>.<Revision>,例如9.0.2654.0。这里的构建号(Build)藏着有趣的"天数密码":
- 构建号 = 距离 2021 年 8 月 31 日的天数。因为 NanaZip 的第一个版本就是在当天创建发布的
- 修订号(Revision)= 当天第几次发布,从 0 开始计数。所以同一天第一次发布为
0,第二次为1
也就是说,看到6.0.1711.0这样的版本号,你就能反推出它大约发布在项目启动后第 1711 天,并且是当天的第一次发布。
三、发布标签演进:从 Preview 到 Update 的完整生命周期 🚀
每个版本的发布标签遵循一条固定时间线:
Preview {N}(一次或多次)→ Final(一次或多次)→ 无标签 → {Update N Final → Update N}(零次或多次)→ 进入下一轮次版本官方文档给出的实例时间线如下:
6.0 Preview 1 → 6.0 Final → 6.0 → 6.0 Update 1 Final → 6.0 Update 1 → 6.0 Update 2 Final → 6.0 Update 2 → 6.5 Preview → ...各标签的含义与归属渠道:
| 标签 | 出现渠道 | 含义 |
|---|---|---|
Preview {N} | 仅 Preview | 预览版第 N 次预览发布,N 从 1 起;只发一次时可省略 N |
Final/Update N Final | 仅 Preview | 与对应稳定版实现完全一致的"预演"发布,用于提前验证;若稳定版发布前发现重大问题,可能出现多个 Final |
| 无标签(No Tag) | 仅稳定版 | 正式稳定版,每个次版本只有一个 |
Update N | 仅稳定版 | 稳定版的第 N 次更新,N 从 1 起 |
💡核心设计思想:Preview 渠道像"彩排",Final版本先让预览用户验证与稳定版完全一致的实现;Update N Final则对应验证稳定版的Update N更新。验证通过后才正式发布,最大限度降低稳定版用户遇到严重问题的概率。
四、双通道在工程中的落地:包标识与资源差异
两条渠道的差异不只停留在文档层面,而是贯穿整个工程:
- 应用包清单:NanaZipPackage/Package.appxmanifest 中定义了包名称、显示名称与 GUID 标识,切换渠道时需同步替换
- 资源文件:自解压程序(SFX)与命令行界面的图标、右键菜单名称等都通过不同字符串区分。例如 Shell 扩展中通过
::SHStrDupW(L"NanaZip", ...)或L"NanaZip Preview"决定显示名称,见 NanaZip.UI.Modern/NanaZip.ShellExtension.cpp - 版本属性:当前主/次版本、构建日期与发布标签集中维护在 NanaZip.Project/NanaZip.Project.Version.props:
<NanaZipMajorVersion>6</NanaZipMajorVersion> <NanaZipMinorVersion>5</NanaZipMinorVersion> <NanaZipBuildNumberDate>2026-02-24</NanaZipBuildNumberDate> <NanaZipVersionTag>Preview</NanaZipVersionTag>从这份配置就能看出,仓库当前正处于6.5 Preview阶段——与 Documents/ReleaseNotesPreview.md 中最新一条记录完全吻合。
五、自动化工具链:版本号如何一键刷新 🛠️
NanaZip 为版本管理编写了专门的构建工具,避免人工修改出错:
- 渠道切换工具:NanaZip.RefreshPackageVersion/Program.cs 会在 7 个关键文件(各资源脚本
resource.rc、Shell 扩展源码、Package.appxmanifest、NanaZipPackage.wapproj)之间批量替换渠道标识字符串,实现稳定版 ⇄ 预览版的一键切换 - 包版本刷新:NanaZip.Build.Tasks/RefreshAppxManifestVersion.cs 在 MSBuild 构建时自动把新版本号写入 appx 清单的
Identity节点 - 构建日期刷新:NanaZip.Build.Tasks/RefreshProjectBuildNumberDate.cs 负责更新
NanaZipBuildNumberDate属性,确保构建号"天数密码"始终准确
这些预编译的构建任务 DLL 位于 NanaZip.Project/ 目录,说明文档见 NanaZip.Project/ReadMe.md。
六、如何查阅 Release Notes 📝
两个渠道的更新日志分开维护,互相交叉引用:
- 稳定版更新日志:Documents/ReleaseNotes.md
- 预览版更新日志:Documents/ReleaseNotesPreview.md
以稳定版 6.0 系列为例,从首发的6.0 (6.0.1632.0)到最新的6.0 Update 7 (6.0.1711.0),构建号 1632 → 1711 的递增正好印证了"构建号 = 天数"的规则。此外,每个更新还会同步上游 7-Zip 的实现状态,详见 Documents/UpstreamSynchronization.md。
七、常见问题 FAQ ❓
Q1:我装了 NanaZip,还能再装 NanaZip Preview 吗?可以。两者包标识不同,可并存安装,适合想尝鲜新功能的用户。
Q2:Preview 版本稳定吗?Preview 承担"彩排"职责,功能可能尚未完成;Final标签版本则与即将发布的稳定版实现完全一致,可放心使用。
Q3:怎么快速判断我的版本新旧?看四段版本号第三段(构建号):它是距离 2021-08-31 的天数,数字越大越新。
总结
NanaZip 通过双渠道包标识 + 天数式构建号 + 标签化发布周期 + 自动化版本工具链,构建了一套完整且可追溯的版本管理与发布体系。理解Preview N → Final → 无标签 → Update N这条演进线,你就掌握了它版本管理的核心脉络。
【免费下载链接】NanaZipThe 7-Zip derivative intended for the modern Windows experience项目地址: https://gitcode.com/JRJSheep/NanaZip
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考