当前位置: 首页 > news >正文

027-7zsfx

7zsfx

以下是使用7-Zip制作Windows自解压安装包的具体方法和实现步骤,综合了多种实现方案和注意事项:

一、基础制作流程

准备SFX模块

从LZMA SDK或7-Zip安装目录获取7zS.sfx 或7zSD.sfx 模块(新版可能在LZMA目录,旧版在extra包)。

文件打包

7z a demo.7z TestApp.exe TestApp.config # 将目标文件打包成7z格式

  • 支持参数:
    -r:递归子目录
    -mx=9:极限压缩
    -m0=LZMA2:指定压缩算法
编写配置文件 创建UTF-8无BOM编码的config.txt :
;!@Install@!UTF-8!
Title="My Application"
BeginPrompt="确认安装此程序吗?"
ExecuteFile="TestApp.exe" 
;!@InstallEnd@!

关键参数说明:

  • RunProgram:解压后执行的程序路径(支持%%T表示临时目录)
  • Directory:解压目录(默认临时目录)
  • ExecuteParameters:传递命令行参数

生成EXE文件

copy /b 7zS.sfx  + config.txt  + demo.7z MyInstaller.exe  

二、进阶功能实现

MSI安装包集成
;!@Install@!UTF-8!
Title="专业软件安装"
ExecuteFile="msiexec.exe" 
ExecuteParameters="/i MyApp.msi  /qn /log install.log" 

优势:
自动获取管理员权限(无需手动启动CMD)
隐藏MSI安装界面提升用户体验

界面美化方案
  • 使用7zSFXBuilder工具(可视化配置对话框样式)
  • 通过Resource Hacker修改:
  • 替换SFX模块图标(.ico文件)
  • 修改文件属性(公司名称、版本号等)
  • 调整解压进度条样式
静默安装模式
Progress="no"
ExecuteFile="setup.bat" 
RunProgram="hide"

适用场景:企业批量部署时隐藏所有交互界面

三、特殊场景处理

依赖文件安装
ExecuteFile="vcredist_x64.exe" 
ExecuteParameters="/install /quiet /norestart"

支持链式调用多个安装程序

临时文件清理
Delete="%%T\*.*"

安装完成后自动删除解压的临时文件

四、常见问题解决

权限问题

通过SFX包装后,双击即可自动请求管理员权限,无需手动提权

中文乱码问题

确保配置文件保存为UTF-8无BOM编码,推荐使用Notepad++编辑

杀毒软件误报

建议对生成后的EXE文件进行数字签名(需购买代码签名证书)

五、不同SFX模块对比

模块类型交互方式适用场景特性
7z.sfxGUI窗口简单解压仅基础解压功能
7zCon.sfx命令行无人值守安装无图形界面
7zS.sfxGUI安装向导标准软件安装支持完整安装流程
7zSD.sfxGUI安装向导需MSVCRT.dll 的安装依赖系统运行库

提示:建议测试时使用7zSD.sfx 以获得最佳兼容性。如需更复杂的安装逻辑,可结合批处理脚本实现多步骤安装。

完整代码

Github

作者郑天佐
邮箱zhengtianzuo06@163.com
主页http://www.zhengtianzuo.com
githubhttps://github.com/zhengtianzuo

相关文章:

  • pom.xml与.yml,java配置参数传递
  • JVM 概述/结构/架构/生命周期
  • 【YOLOv8】YOLOv8改进系列(10)----替换主干网络之UniRepLKNet
  • 【蓝桥杯】单片机设计与开发,模板V1.1
  • 记一次loki报错的处理过程
  • 自由学习记录(49)
  • 解锁大语言模型潜力:LangChain,构建AI应用的全新框架
  • Java 8 Stream API
  • 多线程 --- 多线程编程
  • 【数学建模】(启发式算法)遗传算法:自然选择的计算模型
  • NC,GFS、ICON 数据气象信息可视化--降雨量的实现
  • 华为OD机试2025A卷 - 流浪地球(Java Python JS C++ C )
  • 用Unity实现UDP客户端同步通信
  • 基于云服务器的数仓搭建-hive/spark安装
  • Linux达梦数据库异地备份
  • STM32硬件IIC与OLED使用
  • Mininet--log.py-单例日志器-super().__new__(cls)解析
  • Dify 0.15.3版本 本地部署指南
  • 【已开源】UniApp+Vue3+TS全栈实战:从0到1构建企业级跨端应用与规范、uniapp+vue3模板应用
  • MySQL中如何进行SQL调优?
  • 用axure怎么做h5网站/今天最新新闻报道
  • 网站建设 顺德/seo会被取代吗
  • 建设网站的主要流程有哪些/app搜索优化
  • 做网站联系/惠州seo计费管理
  • 长宁哪里有做网站优化比较好/域名备案
  • mstsc做网站/seo挂机赚钱