我正在尝试使用 7-Zip 创建自解压存档 (SFX) 可执行文件。我按照文档操作,但无法接近目标。我使用的是 7-Zip 32 位和 7-Zip extra 32 位。
这是我首先遇到的问题,要创建 SFX 文件,您需要调用以下脚本:
copy /b 7zS.sfx + config.txt + archive.7z archive.exe
这将生成一个archive.exe
包含config.txt
运行相应程序的文件。config.txt
文件如下所示:
;!@Install@!UTF-8!
Title="7-Zip 4.00"
BeginPrompt="Do you want to install the 7-Zip 4.00?"
RunProgram="setup.exe"
;!@InstallEnd@!`
这将生成archive.exe
。
现在,文档中进一步告诉您如何添加文件。我需要压缩文件,setup.exe
因此我使用以下脚本。
7z a -sfx a.exe setup.exe
我对这个例子感到困惑。我应该使用archive.exe
而不是 吗a.exe
?如果我这样做,我会收到一条错误消息,提示archive.exe
“不支持存档类型”。
如果我保留名称a.exe
并将setup.exe
其添加到 a 中,并archive.exe
使用前面的脚本将文件添加到其中,它所做的就是将文件提取到本地文件夹中,而不是执行它。
为什么会发生这种情况?
答案1
我已经创建了关于如何执行此操作的分步说明,因为我对于如何使其工作感到非常困惑。
如何制作一个使用 7zip -sfx 开关运行 setup.exe 的自解压档案
步骤 1 - 设置安装文件夹
为了方便起见,请创建一个文件夹 c:\Install。我们将把所有必需的文件复制到此处。步骤 2 - 7压缩安装程序
- 转到包含 .msi 和 setup.exe 的文件夹
- 选择 .msi 和 setup.exe
- 右键单击并选择 7Zip --> “添加到存档”
- 将您的档案命名为“Installer.7z”(或您选择的名称)
- 单击“确定”
- 您现在应该有“Installer.7z”。
- 将此 .7z 文件复制到 c:\Install 目录
步骤 3 - 获取 7z-Extra sfx 扩展模块
您需要下载 7z-Extra。
- 点击此链接前往下载 7Zip
- 您需要下载 9.20 版本(截至 2015 年 5 月),因为测试版不包含正确的文件。
- A直接下载关联。
- 提取 7zip 附加文件
- 将文件“7zS.sfx”复制到 c:\Install
步骤 4 - 设置 config.txt
我建议使用 NotePad++ 来编辑此文本文件,因为您需要以 UTF-8 进行编码,以下说明使用 notepad++。
- 使用 Windows 资源管理器转到 c:\Install
- 右键单击并选择“新文本文件”,并将其命名为 config.txt
- 右键单击并选择“使用 NotePad++ 编辑
- 单击“编码菜单”并选择“以 UTF-8 编码”
- 输入如下内容:
;!@安装@!UTF-8! 标题="软件 v1.0.0.0" BeginPrompt="您是否要安装软件 v1.0.0.0?" 运行程序=“setup.exe” ;!@安装结束@!
编辑此文件,将 [SOFTWARE v1.0.0.0] 替换为您的产品名称。安装文件的参数和选项的注释如下这里
检查点
您现在应该有一个文件夹“c:\Install”,其中包含以下 3 个文件:- 安装程序.7z
- 7zS.sfx
- 配置.txt
步骤 5 - 创建档案
我在网上找到了这些说明,但没有任何地方解释上述 4 个步骤中的任何一个。- 打开一个 cmd 窗口,Window + R --> cmd --> 按 Enter
- 在命令窗口中输入以下内容
光盘 \ 安装 复制/b 7zS.sfx + config.txt + Installer.7z MyInstaller.exe
- 查看 c:\Install,你会看到有一个 MyInstaller.exe 你完蛋了
运行安装程序
双击 MyInstaller.exe,系统会提示您的信息。单击“确定”,setup.exe 将运行。PS 关于自动化的说明
现在您已经在 c:\Install 目录中运行它,我将创建一个“Install.bat”文件并将复制脚本放入其中。copy /b 7zS.sfx + config.txt + Installer.7z MyInstaller.exe
现在,每次您需要重建部署包的新版本时,只需编辑并运行 Install.bat 即可。
答案2
使用 7-Zip GUI 创建自解压档案要容易得多。创建 7z 档案时选择 SFX 选项。
答案3
那几乎是对的。
在步骤中:
copy /b 7zS.sfx + config.txt + archive.7z archive.exe
该archive.7z
文件是包含所有文件的 7-zip 存档。这应该是最后一步。
在此步骤之前,应创建 archive.7z,其中包含 setup.exe 及其所需的任何其他文件。使用以下命令创建它:
7z a archive.7z setup.exe
答案4
您提到的第一个脚本会创建一个名为的自解压存档 (SFX) 可执行文件archive.exe
。此存档包含两个文件:
config.txt
:此文件包含 SFX 档案的配置设置。archive.7z
:此文件是您要分发的文件的压缩档案。
您提到的第二个脚本将setup.exe
文件压缩为名为的 SFX 可执行文件a.exe
。此存档仅包含一个文件:
setup.exe
:这是压缩的安装文件。
archive.exe
当您尝试将其用作第二个脚本的输入文件时,您会收到错误,因为archive.exe
它不是压缩文件。它是一个包含 SFX 代码的可执行文件。
要解决此问题,您需要将archive.exe
文件压缩为 SFX 存档。您可以使用以下命令执行此操作:
7z a -sfx archive.exe archive.exe
这将创建一个名为 的新 SFX 档案archive.exe
,其中包含原始archive.exe
文件。
创建新的 SFX 档案后,您可以使用它来分发文件archive.exe
。当用户双击 SFX 档案时,该archive.exe
文件将被提取并执行。
以下是使用 7-Zip 创建 SFX 档案的一些其他技巧:
- 您可以使用该
-sfxmodule
选项为存档指定不同的 SFX 模块。如果您想使用不同的压缩格式或想要为存档添加其他功能,这将非常有用。 - 您可以使用此
-sfxoptions
选项为 SFX 存档设置附加选项。例如,您可以设置存档运行时将显示的图标,或者您可以指定密码来保护存档。