【问题标题】:How do I make a self extract and running installer如何制作自解压和运行安装程序
【发布时间】:2015-03-10 08:52:01
【问题描述】:

因此,目前我的用户下载了一个 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会影响终端用户体验吗?

【问题讨论】:

    标签: 7zip winrar sfx


    【解决方案1】:

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

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

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

    你需要下载7zSD.sfx

    1. here 下载 LZMA 软件包之一
    2. 解压包,在bin文件夹中找到7zSD.sfx
    3. 将文件“7zSD.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!
      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

    检查点

    您现在应该有一个文件夹“c:\Install”,其中包含以下 3 个文件:

    1. Installer.7z
    2. 7zSD.sfx
    3. config.txt

    第 5 步 - 创建存档

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

    1. 打开一个cmd窗口,Window + R --> cmd -->回车
    2. 在命令窗口中输入以下内容

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

    4. 你完蛋了

    运行安装程序

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

    附注自动化注意事项

    现在您已经在 c:\Install 目录中工作了,我将创建一个“Install.bat”文件并将复制脚本放入其中。

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

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

    【讨论】:

    • 感谢您的出色回答。我正在尝试使用这种技术来捆绑节点 webkit 应用程序。我遇到了一个问题,解压并成功运行应用程序后,在我关闭应用程序几分钟后,会弹出一个程序兼容性助手窗口,提示“程序可能没有正确安装”。程序:7z 设置 SFX。发布者:Igor Pavlov ...我想这是因为我没有运行实际的 Windows 安装程序,而是运行不同的执行程序。你能想出办法解决这个问题吗?
    • 16.x 版本中不包含 SFX 的原因是因为它在压缩时内置了 -sfx 标志(或使用 GUI 时的复选框)!
    • 未来人士请注意:SFX 文件已移至LZMA sdk。到目前为止,SFX 的东西在存档的 bin 文件夹中,自述文件是 DOC/installer.txt
    • 致 ilaif:只要您有一个名为“install.exe”、“setup.exe”或“update.exe”并且您没有写入注册表,然后 Windows 会出现“程序可能没有正确安装”。解决方案:重命名您的安装程序并避免使用安装/设置/更新。例如。将您的安装程序重命名为 inst.exe,一切正常。我在 Windows 7 上对此进行了测试。
    • @Woody ,答案是在我自己的答案后 6 个月得到的,那时我已经选择了 WinRar,而且从记忆中,7zip 安装程序在安装时提供给最终用户的界面比 WInRar 版本更丑
    【解决方案2】:

    使用开源 7zip SFX-Packager 很简单 - 只需将文件夹“拖放”到它上面,它就会创建一个便携式/自解压包。

    【讨论】:

    【解决方案3】:

    好的,我已经搞定了,希望这些信息有用。

      1234563这意味着您将获得不同的用户体验,具体取决于您用于创建 sfx 的应用程序
    1. 我用WinRar如下,这不需要你创建一个sfx文件,一切都可以通过gui创建:

      • 选择文件,右键选择添加到存档
      • 使用 Browse.. 在上面的文件夹中创建存档
      • 将存档格式更改为 Zip
      • 启用创建 SFX 存档
      • 选择高级选项卡
      • 选择音效选项
      • 选择设置选项卡
      • 解压后运行字段中输入 setup.exe
      • 选择模式选项卡
      • 启用解压到临时文件夹
      • 选择文本和图标选项卡
      • 为您的任务输入更合适的标题
      • 选择确定
      • 选择确定

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

    【讨论】:

    • 使用 WinRAR SFX 的小警告:virustotal.com 上的一些安全软件可以将其检测为通用木马。
    • 有人想出解决安全问题的办法吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多