准备工作

  • 7z的官网下载对应版本的LZMA SDK
  • 在SDK包的bin目录下有如下几个模板文件(sfx格式)
    • 7zS2.sfx:Windows version for installers
    • 7zS2con.sfx:Windows console version for installers
    • 7zSD.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.exesetup.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.exesetup.conf两个文件压缩到demo.7z中去。

  • 7zS2.sfx

7zS2.sfx复制到DemoBuild/目录下。

制作安装包

打开cmd并输入如下命令:

copy /b 7zS2.sfx + config.txt + demo.7z demoapp.exe