方法一
1,首先必须将需要打包的文件压成.7z格式(假设文件名为YourSetup.7z),不需要做成自解压的EXE文件。
2,用UTF-8格式(用NOTEPAD的话,选择“另存为(Save As)……”时设定Encoding编码格式)写一个config.txt文件,最好存放在与上一步的7z文件同一目录下,config.txt内容为 (假设你解压以后希望自动运行其中的setup.exe):
;!@Install@!UTF-8!
InstallPath=”.\\YourSetupFolder”
RunProgram=”setup.exe”
;!@InstallEnd@!
3,从http://7zsfx.solta.ru/en/ 下载一个7zSD,并将其中的7zSD.sfx文件解压到上面提到的目录中
4,启动cmd命令窗口,转到该目录,打这个命令:
copy /b 7zSD.sfx+config.txt+YourSetup.7z YourSetup.exe
这个YourSetup.exe就是我们需要的了。
特别注意:
Config.txt中的InstallPath参数很重要,在网络上搜索出来的文档一般都只写一个RunProgram参数,我照这种写法做出来的执行包解压完成后,在运行setup.exe时报错,错误信息为:
This installation package could not be opened. Verify that the package exists and that you can access it, or contact the application vendor to verify that this is a valid Windows Installer Package.
百思不得其解,后来到我的Temp目录下查找,发觉解压过程还算正常,目录为7zipSfx.???,但执行setup.exe时,这个目录突然被清 空,setup.exe不见当然就出错了,因此我查了7zSD的文档,看到了InstallPath这一参数,试用了一下,成功了。或许有其他更好的方 法,但我不想在这上面花更多精力了,我非常不理解,如此重要的功能为什么不能集成到7zFM中去?目前我用的是4.58beta,还看不出官方有计划集成 这一功能,比较遗憾。
方法二
7-zip制作自解压包很方便,只要在压缩时选择”创建自释放程序”选项。
而自解压安装包有点麻烦,不如WinRAR方便。
准备工具:
下载 LZMA SDK 这里面有 7zSD.sfx (16.04版7zS2.sfx在Win7中不弹出对话框,下载9.20版7zS.sfx与16.04版7zSD.sfx)。
下载 ResourceHacker 用于修改 图标与属性
已经压缩好的7Z文件
制作UTF-8无BOM的config.txt文件
自解压模板说明
SFX_Module Description
7z.sfx Windows version.
7zCon.sfx Console version.
7zS.sfx Windows version for installers.
7zSD.sfx Windows version for installers (uses MSVCRT.dll).
config.txt说明
首行 ;!@Install@!UTF-8!
未行 ;!@InstallEnd@!.
ID_String=”Value”
ID_String Description
Title 对话框标题
BeginPrompt 对话框提示
Progress 对话框按钮,可以是”yes” or “no”,默认为”yes”
RunProgram 7z文件内可执行文件名,默认为”setup.exe”。%%T 可替代临时解压路径。
Directory “RunProgram”的路径,默认为”.\\”
ExecuteFile 7z文件内或Windows系统中可执行文件名
ExecuteParameters “ExecuteFile” 的参数。
三个官方范例
;!@Install@!UTF-8!
Title=”7-Zip 4.00″
BeginPrompt=”Do you want to install the 7-Zip 4.00?”
RunProgram=”setup.exe”
;!@InstallEnd@!
;!@Install@!UTF-8!
Title=”7-Zip 4.00″
BeginPrompt=”Do you want to install the 7-Zip 4.00?”
ExecuteFile=”7zip.msi”
;!@InstallEnd@!
;!@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@!
生成安装包:copy /b 7zS.sfx+config.txt+archive.7z archive.exe
二个制作安装包的工具,各有特点。
7z SFX Builder 2.1
7-Zip SFX Maker 3.3 [ResourceHacker 改名 ResHacker.exe 后放入]
0 条评论