如何自动化构建Winrar Sfx文件?

5
在Windows上使用Maven(和一点点Ant)构建了我的应用程序后,我手动创建了Winrar Sfx安装程序,具体步骤如下:
  • 选择文件,右键单击并选择添加到归档
  • 使用浏览..在上面的文件夹中创建归档
  • 将归档格式更改为Zip
  • 启用创建归档格式
  • 选择高级选项卡
  • 选择SFX选项
  • 选择设置选项卡
  • 将setup.exe输入提取后运行字段
  • 选择模式选项卡
  • 启用解压至临时文件夹
  • 选择文本和图标选项卡
  • 输入新标题
  • 从我们调用winrar的同一文件夹中选择setup.ico
  • 选择确定
  • 选择确定
但是,我是否可以使用Windows批处理文件/Maven或Ant自动化部分或全部过程?

1
看这里:http://blog.aaronkitchens.com/2014/02/selfextracting-executable-exe-with.html。你可能最终会使用类似他们所用的东西,即Maven中的Ant混合体和一些maven-exec-plugin。 - Tome
@Tome 嗯,那是一个不错的链接。我最初尝试使用7z,但因为无法使其正常工作而放弃了,这就是我转向WinRar的原因。但是,现在我认为使用Sfx时,WinRar为最终用户提供了更好的体验。所以现在我必须决定是否可以将其适应于WinRar,回到7z还是坚持我的手动方法。 - Paul Taylor
我们几年前做过类似的事情,经过一番挖掘,我找回了可用的pom文件。简而言之(不能展示太多细节),我们使用了两个_maven-exec-plugin_执行器,一个用于创建简单的7z归档文件(简单的7z命令),另一个则使用7zsfx(请参见此处:http://www.7zsfx.info/en/)使该归档文件具有自解压功能。 - Tome
仅供其他寻找基于WinRAR解决方案的谷歌用户参考,请查看Mofi在https://dev59.com/K2Mm5IYBdhLWcg3wVdx5#24598044上的建议。 - Julio Nobre
1个回答

5

打开 WinRAR,在菜单栏中点击帮助,选择帮助主题并打开内容选项卡。您会看到以下列表:

  • 命令行模式
    • 命令行语法
    • 命令
      • "A" - 添加到压缩文件
    • 开关
      • ...
  • 自解压模块

所有有关如何使用正确的开关调用WinRAR.exe创建SFX的信息都可以在这些帮助文章中找到。

一般来说,有两种可能性:

  1. 您要做的就是在最终点击确定之前,先在常规选项卡上点击配置文件按钮,并点击列表项将当前设置保存为新配置文件。然后,您可以使用开关"-cpMy SFX Profile"调用WinRAR.exe。请阅读此开关的帮助页面。

  2. 您可以直接在命令行上指定创建SFX文件的所有选项。

对于第二种可能性,可以使用以下模板:

"%ProgramFiles%\WinRAR\WinRAR.exe" a -afzip -cfg- -ed -ep1 -k -m5 -r -tl -iicon"Path to icon file\MyApplicationInstall.ico" "-sfx%ProgramFiles%\WinRAR\Zip.sfx" "-zComment file with full path containing SFX options" "Path to Destination Folder\MyApplicationInstall.exe" "Path to files to add to archive\*"
< p >在选择所有SFX选项并创建存档后打开的对话框中,可以从选项卡注释中复制与开关-z相关的*.txt注释文件内容。

顺便说一下:我建议创建RAR自解压存档代替ZIP自解压存档,因为使用RAR压缩,加上合并存档的选项,EXE文件大小比使用ZIP压缩小得多,而且不需要批处理文件或任何其他应用程序来创建WinRAR SFX存档。只需一个正确命令行的简单快捷方式文件(*.lnk)即可通过双击此快捷方式创建SFX存档,随时为您的应用程序创建新的SFX存档。


谢谢。我使用了“保存当前设置到新配置文件”的方法,并启用了“添加到上下文菜单”,然后使用该配置文件加载Winrar,每次只需调整创建zip文件的位置,然后点击确定 - 所以我还没有完全自动化,但速度快多了。 - Paul Taylor
2
使用Mofi的建议,您应该使用-cfg-开关以避免WinRAR的默认设置依赖。否则,WinRAR的默认设置可能会覆盖您的-zOptions.txt文件内容。干杯! - Julio Nobre

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接