如何制作自解压和 运行 安装程序

How do I make a self extract and running installer

所以目前我的用户下载一个 zip 文件,将其解压缩,然后 运行 setup.exe - 我希望他们只需单击一下即可完成此操作。使用 http://www.wikihow.com/Use-7Zip-to-Create-Self-Extracting-excutables 我可以制作一个自解压的 exe,但它实际上 运行 安装程序。

来自这个问题

Why does 7zip Ignore my InstallPath when making a SFX installer?

看来我还需要一个 .sfx 文件,所以我从另一个问题中复制并创建了一个包含以下内容的文件

;!@Install@!UTF-8!
InstallPath="C:\test"
GUIMode="2"
RunProgram="setup.exe"
;!@InstallEnd@!

并调用了 setup.sfx 并将其与其他文件一起添加到存档中

setup.ini
setup.exe
setup.ico
install.jar
JVM32 (folder)

但没关系,我还需要做什么。

补充问题,我也有WinRar,我用7Zip还是Winrar对终端用户体验有影响吗?

好的,我已经开始工作了,希望这些信息有用。

  1. 首先,我现在意识到 self-extracting zip 不仅可以通过双击开始解压,而且不需要在用户计算机上安装解压应用程序,因为解压代码位于档案本身。这意味着 您将获得不同的用户体验,具体取决于您用来创建 sfx 的应用程序

  2. 我使用 WinRar 如下,这不需要你创建 sfx 文件,一切都可以通过 gui 创建:

    • Select 个文件,右键单击并 select 添加到存档
    • 使用浏览..在上面的文件夹中创建存档
    • 将存档格式更改为 Zip
    • 启用创建 SFX 存档
    • Select 高级选项卡
    • Select 音效选项
    • Select 设置选项卡
    • 运行 after Extraction 字段中输入 setup.exe
    • Select 模式选项卡
    • 启用解压到临时文件夹
    • Select 文本和图标选项卡
    • 为您的任务输入更合适的标题
    • Select 好的
    • Select 好的

生成的 exe 解压缩到一个临时文件夹,然后启动安装程序

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

How to make a self extracting archive that runs your setup.exe with 7zip -sfx switch

步骤如下。

第 1 步 - 设置安装文件夹

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

第 2 步 - 7 压缩您的安装程序

  1. 转到包含您的 .msi 和 setup.exe
  2. 的文件夹
  3. Select .msi 和 setup.exe
  4. 右键单击并选择 7Zip --> "Add to Archive"
  5. 为您的存档命名 "Installer.7z"(或您选择的名称)
  6. 点击确定
  7. 你现在应该 "Installer.7z".
  8. 将此 .7z 文件复制到您的 c:\Install 目录

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

您需要下载7zSD.sfx

  1. here
  2. 下载 LZMA 软件包之一
  3. 解压包,在bin文件夹中找到7zSD.sfx
  4. 将文件“7zSD.sfx”复制到 c:\Install

第 4 步 - 设置您的 config.txt

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

  1. 使用 windows 资源管理器转到 c:\Install
  2. 右键单击并选择 "New Text File" 并将其命名为 config.txt
  3. 右键单击并选择“使用 NotePad++ 编辑”
  4. 单击 "Encoding Menu" 并选择 "Encode in UTF-8"
  5. 输入如下内容:

    ;!@Install@!UTF-8!
    Title="SOFTWARE v1.0.0.0"
    BeginPrompt="Do you want to install SOFTWARE v1.0.0.0?"
    RunProgram="setup.exe"
    ;!@InstallEnd@!
    

编辑此内容,用您的产品名称替换 [SOFTWARE v1.0.0.0]。 关于设置文件的参数和选项的注释是 here.

检查点

您现在应该有一个包含以下 3 个文件的文件夹 "c:\Install":

  1. 安装程序.7z
  2. 7zSD.sfx
  3. config.txt

第 5 步 - 创建存档

我在网上找到的这些说明,但没有任何地方解释上述 4 个步骤中的任何一个。

  1. 打开cmd window, Window + R --> cmd --> 回车
  2. 在命令 window 中键入以下内容

    cd \
    cd Install
    copy /b 7zSD.sfx + config.txt + Installer.7z MyInstaller.exe
    
  3. 在 c:\Install 中查找,您现在会看到您有一个 MyInstaller.exe

  4. 你完成了

运行 安装程序

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

P.S。自动化注意事项

既然你已经在你的 c:\Install 目录中工作了,我将创建一个 "Install.bat" 文件并将复制脚本放入其中。

copy /b 7zSD.sfx + config.txt + Installer.7z MyInstaller.exe

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

使用开源 7zip SFX-Packager 很简单 - 只需将 "Drag & drop" 个文件夹添加到它,并创建一个 portable/self-extracting 包。