搞安装包的第一天就差点摔键盘
前年接了个外包活,甲方非要我打包个带数据库配置的桌面程序。听说Advanced Installer专业就下了个,结果打开界面直接懵逼——左边二十多个图标按钮晃得眼晕,工具栏里还藏了三层折叠菜单。安装教程文档厚得能当砖头,看了十页还在讲欢迎界面设置。
硬着头皮从左上角开始折腾:
- 点"应用程序文件夹"时手滑拖了两次,生成安装包直接多出三百兆空文件夹
- 配置注册表时把HKEY_CURRENT_USER写成LOCAL_MACHINE,测试机直接蓝屏
- 用.NET框架检测功能忘勾自动下载,客户那边弹窗报错骂了我三天
踩坑三个月才悟出的骚操作
有天半夜改安装脚本时突然开窍:
按住CTRL键拖动文件进项目树,这货居然会自动匹配注册表类型!扔个dll进去就标记COM组件,甩个bat直接识别成自定义动作。省得在属性栏里翻十几层菜单。
现在打包数据库配置都这么玩:
- 把初始化SQL文件拖进"安装时自定义动作"
- 运行模式改成"隐藏窗口加延迟"
- 条件栏塞个NOT Installed防止重复执行
比当年手动写PowerShell脚本省了两小时,生成的数据库连字符集都是对的。
血泪换来的模板大法
去年连续做同类型项目时,发现项目设置底角有个"导出为AIP模板"按钮。试着把调好的.NET 6运行环境配置存成模板,结果新项目加载后:
- 所有路径变量自动替换
- 数字证书签名信息保留但密码清空
- 防火墙规则里的端口号变成空白待填项
现在电脑里存着五个模板:绿色版软件专用、带ODBC驱动的、要静默安装的...新项目直接套模板改三处设置,打包速度比实习生喝咖啡还快。
现在连用户骂什么都预测
上个月做升级包时发现个神器:在安装流程里插入"检测旧版"。拖个查找应用程序进序列,设置里勾"卸载找到的版本"。有次客户机残留着五年前的版本,安装时自动弹窗问是否卸载,甲方在群里夸我考虑周全。
最骚的是条件编辑器:
- 遇到360卫士弹窗就跳过驱动安装
- 检测到笔记本电池直接禁用性能模式
- 磁盘剩余空间不足时把日志文件丢U盘
前些天客户说装了二十台电脑没出幺蛾子,我蹲在屏幕前直乐——全靠当初被这破软件虐出来的经验。