如何自动构建此 Winrar Sfx 文件

Posted

技术标签:

【中文标题】如何自动构建此 Winrar Sfx 文件【英文标题】:How can I automate the building of this Winrar Sfx File 【发布时间】:2015-01-28 14:38:42 【问题描述】:

在使用 maven(和一点 ant)在 Windows 上构建我的应用程序后,我手动创建了一个 Winrar Sfx 安装程序,如下所示:

选择文件,右键选择添加到存档 使用 Browse.. 在上面的文件夹中创建存档 将存档格式更改为 Zip 启用创建存档格式 选择高级选项卡 选择音效选项 选择设置选项卡 在解压后运行字段中输入 setup.exe 选择模式选项卡 启用解压到临时文件夹 选择文本和图标选项卡 输入新标题 从我们调用 winrar 的同一文件夹中选择 setup.ico 选择确定 选择确定

但我可以使用 Windows 批处理文件/Maven 或 ant 自动执行部分/全部操作吗?

【问题讨论】:

看看那里:blog.aaronkitchens.com/2014/02/…。你最终可能会使用他们使用的东西,Maven 中的 ant 混合,可能还有一些 maven-exec-plugin。 @Tome 嗯,这是一个很好的链接,我最初尝试使用 7z 但放弃了,因为我无法让它工作,这就是我搬到 WinRar 的原因,但在搬到 WinRar 之后,我认为它提供了一个使用 Sfx 时为最终用户提供更好的体验。所以现在我必须决定是否可以为 WinRar 调整它,回到 7z 还是坚持我的手动方法。 几年前我们做过类似的事情,经过一番挖掘,我找回了工作 pom。简而言之(不能显示很多),我们使用了 maven-exec-plugin 的两次执行,一次创建简单的 7z 存档(简单的 7z 命令),另一次使该存档可自解压,使用 7zsfx(请参阅此处:7zsfx.info/en) 只是为了其他 Google 员工正在寻找基于 WinRAR 的解决方案,请查看 Mofi 的建议 ***.com/a/24598044/378115 【参考方案1】:

启动WinRAR,点击帮助主题上的帮助菜单并打开标签Contents。您会在此处看到列表项:

命令行模式 命令行语法 命令 “A” - 添加到存档 开关 ... 自解压模块

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

一般有两种可能:

    你做了你已经做过的事情,但是在点击最后的OK之前,你点击了General标签上的Profiles按钮并单击列表项将当前设置保存到新配置文件。然后你可以调用 WinRAR.exe 开关 "-cpMy SFX Profile"。阅读此开关的帮助页面。

    您可以直接在命令行上指定用于创建 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\*"

开关-z的*.txt注释文件的内容可以从选择所有SFX选项后打开的用于创建存档的对话框的标签Comment复制。

顺便说一句:我建议创建 RAR 自解压档案而不是 ZIP 自解压档案,因为使用 RAR 压缩具有正确开关的 EXE 文件以实现最佳压缩,另外还使用可靠的存档选项可能比 ZIP 小得多压缩。

因此您不需要批处理文件或任何其他应用程序来创建 WinRAR SFX 存档。每当您想为您的应用程序创建新的 SFX 时,只需双击此快捷方式即可创建 SFX 存档,只需一个简单的快捷方式文件 (*.lnk) 和正确的命令行即可。

【讨论】:

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

以上是关于如何自动构建此 Winrar Sfx 文件的主要内容,如果未能解决你的问题,请参考以下文章

如何在exe中执行bat文件? (使用 WinRAR sfx 创建的 exe)

WinRar SFX,解压到动态文件夹

WinZip用CMD脚本压缩文件,但文件夹也压缩进去了,为啥?

rar自解压格式如何不让人解压

如何自动区分两个 iOS 应用构建包

自动化构建 -- Grunt