创建 7-Zip SFX 可执行文件

8 7-zip

我正在使用 7-Zip 创建一个自解压存档 (SFX) 可执行文件。我遵循了文档,但我无法接近。我正在使用 7-Zip 32 位和 7-Zip extra 32 位。

这是我首先要创建一个 SFX 文件的地方,您需要调用以下脚本:

copy /b 7zS.sfx + config.txt + archive.7z archive.exe
Run Code Online (Sandbox Code Playgroud)

这将生成一个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@!`
Run Code Online (Sandbox Code Playgroud)

这将生成archive.exe.

现在在文档的更下方,它告诉您如何添加文件。我需要压缩setup.exe文件,所以我使用以下脚本。

7z a -sfx a.exe setup.exe
Run Code Online (Sandbox Code Playgroud)

我对这个例子感到困惑。我使用archive.exe代替a.exe吗?如果我这样做,我会收到一条错误消息,指出archive.exe不是受支持的存档类型。

如果我保留名称a.exesetup.exea 并archive.exe使用前面的脚本将文件添加到其中,那么它所做的就是将文件解压缩到本地文件夹中,而不是执行它。

为什么会这样?

jcr*_*r74 11

我已经创建了有关如何执行此操作的分步说明,因为我也对如何使其工作感到非常困惑。

如何使用 7zip -sfx 开关制作运行 setup.exe 的自解压存档

步骤 1 - 设置您的安装文件夹

为方便起见,创建一个文件夹 c:\Install。这是我们将复制所有必需文件的地方。

第 2 步 - 7Zip 您的安装程序

  1. 转到包含 .msi 和 setup.exe 的文件夹
  2. 选择 .msi 和 setup.exe
  3. 右键单击并选择 7Zip -->“添加到存档”
  4. 将您的存档命名为“Installer.7z”(或您选择的名称)
  5. 单击确定
  6. 您现在应该拥有“Installer.7z”。
  7. 将此 .7z 文件复制到您的 c:\Install 目录

第 3 步 - 获取 7z-Extra sfx 扩展模块

您需要下载 7z-Extra。

  1. 按照这个链接去下载 7Zip
  2. 您需要下载 9.20 版本(如 @ May-2015),因为测试版不包含正确的文件。
  3. 一个直接的下载链接。
  4. 解压 7zip 额外文件
  5. 将文件“7zS.sfx”复制到 c:\Install

第 4 步 - 设置您的 config.txt

我建议使用 NotePad++ 来编辑此文本文件,因为您需要以 UTF-8 编码,以下说明使用的是 notepad++。

  1. 使用 Windows 资源管理器转到 c:\Install
  2. 右键单击并选择“新建文本文件”并将其命名为 config.txt
  3. 右键单击并选择“使用 NotePad++ 编辑”
  4. 单击“编码菜单”并选择“以 UTF-8 编码”
  5. 输入如下内容:
    ;!@Install@!UTF-8!
    标题="软件 v1.0.0.0"
    BeginPrompt="您要安装 SOFTWARE v1.0.0.0 吗?"
    运行程序=“setup.exe”
    ;!@安装结束@!
    

编辑此替换 [SOFTWARE v1.0.0.0] 与您的产品名称。安装文件的参数和选项的注意事项在这里

检查点

您现在应该有一个包含以下 3 个文件的文件夹“c:\Install”:
  1. 安装程序.7z
  2. 7zS.sfx
  3. 配置文件

第 5 步 - 创建存档

我在网上找到的这些说明没有解释上述 4 个步骤中的任何一个。
  1. 打开一个cmd窗口,Window + R --> cmd --> 按回车
  2. 在命令窗口中输入以下内容
光盘\
光盘安装
复制/b 7zS.sfx + config.txt + Installer.7z MyInstaller.exe
  1. 查看 c:\Install,您现在将看到您有一个 MyInstaller.exe
  2. 你完蛋了

运行安装程序

双击 MyInstaller.exe,它会提示您的消息。单击“确定”,setup.exe 将运行。

PS 关于自动化的说明

既然您在 c:\Install 目录中有此工作,我将创建一个“Install.bat”文件并将复制脚本放入其中。
copy /b 7zS.sfx + config.txt + Installer.7z MyInstaller.exe
Run Code Online (Sandbox Code Playgroud)

现在,您可以在每次需要重建部署包的新版本时编辑并运行 Install.bat。

  • 在当前版本的 7-Zip 中,所需的 .sfx 文件不是“7z-Extra”下载的一部分,而是 [LZMA SDK](https://www.7-zip.org/sdk.html) 的一部分。 SDK 下载包括用于创建这些安装程序的文档(在“DOC/installer.txt”中)以及示例配置文件和批处理文件以及执行此操作所需的命令(在“bin/installer”中)。这个答案非常有帮助,但我还建议阅读文档,因为它包括此处未包含的其他重要细节 (2认同)

Ste*_*ngs 5

使用 7-Zip GUI 创建自解压存档要容易得多。创建 7z 存档时选择 SFX 选项。

有关详细步骤,请参阅此 wikiHow 文章

7-Zip SFX 选项的屏幕截图(带有手绘圆圈)

  • 但是,这不提供 OP 所需的功能。您不能使用不同的 SFX 模块,也不能配置它们。 (2认同)

小智 5

这几乎是正确的。

在步骤中:

copy /b 7zS.sfx + config.txt + archive.7z archive.exe
Run Code Online (Sandbox Code Playgroud)

archive.7z文件是包含所有文件的 7-zip 存档。这应该是最后一步。

在此步骤之前,应创建 archive.7z,其中包含 setup.exe 和它需要的任何其他文件。使用以下方法创建:

7z a archive.7z setup.exe
Run Code Online (Sandbox Code Playgroud)