大模型手搓文件对比工具(13):程序写完了,怎么发给别人用

这一期不再讲“还差什么”,而是讲“已经怎么交付出去”。

到第 13 期时,这个文件对比工具已经可以直接发给别人用了,Windows 包也已经整理完毕,便携版和安装版都能独立分发。

现在我最后留下的是两份成品:

`FileCompareTool-0.9.0-rc1-win-x64-portable.zip`
`FileCompareTool-0.9.0-rc1-win-x64-setup.exe`

旁边还会附上一份校验文件:

`SHA256SUMS.txt`

应用内部继续显示 `0.9.0-rc1`,安装器版本则用纯数字 `0.9.0`。这样做的原因很简单:应用口径、安装器口径和 Windows 安装工具的版本规则彼此不打架。

这次已经交付了什么

这次交付不是一个源码目录,而是一套给普通 Windows 用户直接用的成品。

便携版适合直接解压后运行,不写注册表,不要求管理员权限,放在 U 盘或者临时目录里都可以。

安装版适合更正式一点的场景,带开始菜单、快捷方式和卸载入口,默认是当前用户安装,不要求额外装 Java。

关于窗口里能看到的内容也已经收口:版本号、渠道、构建日期、提交 ID、Java 运行时、操作系统架构和数据目录。

用户拿到包以后,先看这里,就能知道自己运行的是哪一版。

包里放了什么

发布包只保留运行需要的东西。现在的结构大概是这样:

FileCompareTool-0.9.0-rc1/
├── FileCompareTool.exe
├── app/
│ ├── FileCompareTool.jar
│ ├── FileCompareTool.cfg
│ └── lib/
├── runtime/
├── legal/
├── README-WINDOWS.md
├── CHANGELOG.md
└── THIRD_PARTY_NOTICES.md

这里面不放源码,不放测试,不放开发目录,也不放用户机器上的数据。

用户拿到的是一个能运行、能查看说明、能检查许可证的包,不是我的工作区快照。

用户数据放在哪里

这版把用户数据固定到了:

%LOCALAPPDATA%\FileCompareTool\
├── filter-config.xml
├── history.xml
├── preferences.xml
└── backups\

这个边界很重要。安装、覆盖升级和卸载都只处理程序文件,不去碰用户配置、历史记录和同步备份。

如果用户要彻底清理,也是在确认不需要这些数据之后,手动删除这个目录。

为什么要分成便携版和安装版

我最后保留了两条路。

便携版是第一优先级。它最适合我自己发给别人试用,也最适合不想动系统的用户。

解压就能跑,不依赖本机 Java,也不需要安装器。

安装版更像正式交付。它解决的是开始菜单、快捷方式、卸载和日常使用习惯的问题。

对普通用户来说,双击安装程序比“解压一个目录再找 exe”更像一个完整产品。

版本口径怎么统一

这次我把版本拆成了两层:

这样做不是为了绕路,而是为了让发布工具正常工作。

`rc1` 这种带后缀的版本更适合给应用自己看,安装器和 Windows 侧的版本字段则保持纯数字,更稳。

同样的道理也用在构建信息里。

现在版本、渠道、构建日期和提交 ID 都来自同一处,不再手工散落在多个文件里。

这次为什么还要写 Windows 说明

发布包里我还带了 `README-WINDOWS.md`。它的作用不是讲开发过程,而是告诉别人怎么用:

这比把说明散在博客正文里更实用。

用户真遇到问题时,最先看的往往不是文章,而是包里的说明。

大文件也被收住了

这版顺手把一个容易卡死主界面的问题一起收了:双击大文件进入差异编辑器时,不再直接在 EDT 上把内容一次性读完。

现在的做法是先看文件大小,再决定怎么进:

单侧 <= 20 MB 直接进入后台加载
20 MB < 单侧 <= 100 MB 先给风险提示,用户确认后后台加载
单侧 > 100 MB 不进入可编辑差异视图

这样做的目的很朴素:

界面不能因为一个大文件就像死掉一样卡住。

读取、编码检测和首次差异计算都放到后台,EDT 只管状态变化和界面刷新。

这些问题也一起收尾了

这次发布还把几个容易让交付变脆的点一起整理掉了。

`JAR` 的清单现在由脚本统一生成,主类和依赖路径都固定下来,不再靠人手去改。

`app-icon.ico`、`LICENSE.txt`、`THIRD_PARTY_NOTICES.md` 和 `legal/` 也都进了发布包,避免用户拿到一个“能跑但没说明”的半成品。

最重要的是,`SHA256SUMS.txt` 也在发布目录里了。

用户下载完以后,先校验,再解压,再运行,这比口头说“我这包没问题”有用得多。

这次真正的完成态

到这里,这个第 13 期已经不是“开发进度”,而是“发布结果”了。

现在可以明确给别人发的东西有:

这就是一个能交付给普通 Windows 用户的版本该有的样子。

源码还在仓库里继续演进,但发出去的东西已经能单独成立了。

小结

程序写完之后,真正麻烦的其实不是功能本身,而是怎么把它变成别人拿到就能用的东西。

这一期我做的事情很简单:

所以这篇现在可以直接当收尾稿看:

程序已经写完,交付也已经完成。

展开阅读全文

更新时间:2026-08-08

标签:数码   模型   文件   工具   程序   用户   版本   目录   数据   口径   东西   源码   收尾   差异

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight All Rights Reserved.
Powered By 71396.com 闽ICP备11008920号
闽公网安备35020302034844号

Top