7z制作自解压安装包
文章目录
准备工作
- 到7z的官网下载对应版本的
LZMA SDK
- 在SDK包的
bin
目录下有如下几个模板文件(sfx
格式)7zS2.sfx
:Windows version for installers7zS2con.sfx
:Windows console version for installers7zSD.sfx
:Windows version for installers (uses MSVCRT.dll)
config.txt配置文件
config.txt
是安装包的设置文件,文件的结构如下:
;!@Install@!UTF-8! # 首行
ID_String="Value" # 安装设置
;!@InstallEnd@! # 末行
常见的ID_String
如下表:
ID_String | 描述 |
---|---|
Title | 对话框标题 |
BeginPrompt | 对话框提示 |
Progress | 对话框按钮,可以是"yes" or “no”,默认为"yes" |
RunProgram | 7z文件内可执行文件名,默认为"setup.exe"。%%T 可替代临时解压路径 |
Directory | “RunProgram"的路径,默认为”.\" |
ExecuteFile | 7z文件内或Windows系统中可执行文件名 |
ExecuteParameters | “ExecuteFile” 的参数 |
- 官方示例1
;!@Install@!UTF-8!
Title="7-Zip 4.00"
BeginPrompt="Do you want to install the 7-Zip 4.00?"
RunProgram="setup.exe"
;!@InstallEnd@!
- 官方示例2
;!@Install@!UTF-8!
Title="7-Zip 4.00"
BeginPrompt="Do you want to install the 7-Zip 4.00?"
ExecuteFile="7zip.msi"
;!@InstallEnd@!
- 官方示例3
;!@Install@!UTF-8!
Title="7-Zip 4.01 Update"
BeginPrompt="Do you want to install the 7-Zip 4.01 Update?"
ExecuteFile="msiexec.exe"
ExecuteParameters="/i 7zip.msi REINSTALL=ALL REINSTALLMODE=vomus"
;!@InstallEnd@!
制作安装包示例
假设我有一个setup.exe
、setup.conf
两个文件。如下的文件均放到DemoBuild/
目录下。
准备文件
config.txt
;!@Install@!UTF-8!
Title="Install App"
BeginPrompt="Do you want to install the App?"
ExecuteFile="setup.exe"
;!@InstallEnd@!
demo.7z
将setup.exe
、setup.conf
两个文件压缩到demo.7z
中去。
7zS2.sfx
将7zS2.sfx
复制到DemoBuild/
目录下。
制作安装包
打开cmd
并输入如下命令:
copy /b 7zS2.sfx + config.txt + demo.7z demoapp.exe
文章作者 Evan Yu
上次更新 2022-04-20