上周五,我们那个叫“深渊学校”的破项目,老用户直接把客服喷炸了。为说更新包安装了一半就卡死,然后他妈的旧版本文件还被删了,里头几G的本地缓存和资料直接没了。我一看这情况,就知道又是之前那个写安装脚本的吊毛留下的问题。
本站为89游戏官网游戏攻略分站,89游戏每日更新热门游戏,下载请前往主站地址:www.gm89.me
我为啥要干这破事?
这事本来不该我来管。之前负责打包和部署那哥们儿,过年前提了个离职,说是要去追寻他的独立游戏梦想,挺文艺的一个说法。结果,人一走,这烂摊子立马就炸了。我早就发现他那个版本号和路径逻辑是错的,当时跟他说,他当时拍着胸脯说“没问题,下次版本我一定修好”。去他大爷的,果然给我留了坨大的。
我的岗位本来是做后端业务逻辑的,现在倒我得扎进去处理Windows安装程序的底层逻辑,简直是降维打击。
实践过程:从头到尾扒一遍
我立马把他们扔下的那台虚拟机和打包机给拉了过来,打开那个用 InstallShield 写的老项目文件。我操,这文件结构和路径依赖写得像迷宫一样,权限判断也是马马虎虎,完全是糊弄事儿。我当时心里就骂了一句,这玩意儿能跑起来才是见了鬼了。
我的处理过程是这样的:
- 第一步,定位死因:我跑了好几次安装测试,盯着日志文件找,终于发现它在进行覆盖安装的关键一步,会去读一个早就不存在的配置文件。一读不到,它也不报错,也不弹提示,直接就给我停那儿了。用户看着就是卡死了。
- 第二步,暴力修复:我直接把那个读取配置文件的依赖给去掉了,改成了如果文件不存在,就强制自动生成一份默认配置,确保程序能顺利跑完。然后把所有关键的安装路径检查逻辑全部重新写了一遍。不光要检查 C 盘,连注册表、环境变量那些阴湿角落我也盯紧了。
- 第三步,强制更新日志:之前那个打包仔根本没写过正经的更新日志。为了让后续维护的人(很可能还是我)能看明白,我这回干脆自己建了个 TXT 文档,每次打包之前,都强制让打包机把这回改动的文件列表和最终版本号写进去。这回算是正式有了个能看的“深渊学校_安装包_更新日志”文件。
- 第四步,反复测试:我分别在干净的 Win10 虚拟机、有旧版本的 Win11 虚拟机上跑了安装、覆盖安装、卸载、再安装这四种模式,确保用户的几个G缓存文件不会再被删除。
最终实现与反思
我从晚上八点搞到凌晨三点,新的安装包终于吐了出来。体积是大了几兆,但跑起来流畅多了,我心里踏实多了。用户下次再跑来喷,我都能直接给他发这个“深渊学校_V3.1.2_修复版”的安装包,至少能保证不会把用户电脑里的旧文件搞丢了。
说白了,这种破事,都是因为一开始图省事,用一个半吊子的工具草草了事。现在我算是明白了,越是基础的东西,越不能马虎。每次打开那个更新日志文件,看到自己的手记,就提醒自己,别再给自己挖坑了。