方法一

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 后放入]

方法三

https://www.codenong.com/27904532/

分类: 其他

0 条评论

发表评论

邮箱地址不会被公开。 必填项已用*标注