自解压安装程序
简介
这是一个自解压安装程序工具,可以将多个文件打包成一个单独的可执行文件(.exe),使用户能够通过运行该可执行文件来自动解压并安装所需文件。该工具特别适合于Windows环境下的软件分发和安装。
功能特点
- 自包含:将安装所需的所有文件打包到一个单独的可执行文件中
- 自动解压:运行时自动将文件解压到临时目录
- 自动安装:解压后自动运行安装脚本(install.bat)
- 隐藏控制台:运行过程中隐藏命令行窗口,提供更好的用户体验
- 自定义图标:支持使用自定义图标(app.ico)美化安装程序
使用方法
创建自解压安装程序
-
准备以下文件:
install.bat
:安装脚本,将在解压后自动执行mswsock.dll
:需要打包的DLL文件app.ico
:(可选)自定义图标文件
-
运行程序:
build.exe
-
程序将生成
install.exe
自解压安装文件
使用生成的安装程序
用户只需双击生成的 install.exe
文件,程序将:
- 自动检测是否为自解压模式
- 将打包的文件解压到临时目录(
%TEMP%\myapp_install
) - 自动运行解压后的
install.bat
脚本完成安装
技术原理
该程序使用以下技术实现自解压功能:
- 自检测机制:通过检查文件末尾的特殊标记来判断是否为自解压模式
- 文件打包:使用Go语言的zip库将文件打包成zip格式
- 数据附加:将zip数据附加到可执行文件末尾,并添加8字节的大小标记
- 解压机制:运行时从自身读取并解压zip数据到临时目录
- 静默安装:使用Windows API隐藏控制台窗口,提供无干扰的安装体验
开发说明
程序结构
main()
:主函数,判断运行模式并调用相应功能isSelfExtracting()
:检测是否为自解压模式createSelfExtractingExe()
:创建自解压可执行文件extractFiles()
:从自身提取文件到临时目录runInstallBat()
:运行安装脚本addFileToZip()
:将文件添加到zip包hideConsoleWindow()
:隐藏控制台窗口
自定义
- 修改
requiredFiles
数组可以更改需要打包的文件列表 - 更换
app.ico
文件可以自定义安装程序图标 - 修改
install.bat
可以自定义安装过程
注意事项
- 确保所有需要打包的文件都存在于程序运行目录
- 如果需要管理员权限运行安装脚本,请在
install.bat
中添加相应代码 - 生成的安装程序可能会被某些杀毒软件误报,这是因为自解压程序的特性与某些恶意软件类似
系统要求
- 操作系统:Windows
- 无其他特殊依赖
构建方式
- 生成环境:go mod init build
- go generate
- 生成图标:rsrc -ico app.ico -o app.syso
- 构建32位:set GOARCH=386
- 构建程序:go build -ldflags="-H windowsgui" -o builder.exe
Description
Languages
Go
100%