创建 7-Zip SFX 可执行文件

创建 7-Zip SFX 可执行文件

我正在尝试使用 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压缩安装程序

  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 版本(截至 2015 年 5 月),因为测试版不包含正确的文件。
  3. A直接下载关联。
  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. 输入如下内容:
    ;!@安装@!UTF-8!
    标题="软件 v1.0.0.0"
    BeginPrompt="您是否要安装软件 v1.0.0.0?"
    运行程序=“setup.exe”
    ;!@安装结束@!
    

编辑此文件,将 [SOFTWARE v1.0.0.0] 替换为您的产品名称。安装文件的参数和选项的注释如下这里

检查点

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

步骤 5 - 创建档案

我在网上找到了这些说明,但没有任何地方解释上述 4 个步骤中的任何一个。
  1. 打开一个 cmd 窗口,Window + R --> cmd --> 按 Enter
  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

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

答案2

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

这篇 wikiHow 文章提供了详细步骤

7-Zip 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 存档设置附加选项。例如,您可以设置存档运行时将显示的图标,或者您可以指定密码来保护存档。

相关内容