0

我已经完成了一个应用程序的工作,现在是时候将它交付给客户了。由于它是一个小于 5 MB 的 5 文件应用程序,我决定最简单和最精简的交付方式是作为 RARSFX/ZipSFX 文件,指示解压缩临时文件夹中的所有内容,然后启动主可执行文件我的项目中的文件。

到目前为止一切正常,我选择 ZipSFX 作为默认格式,但问题是我将我的主 exe 设计为接受参数(即 -batch(处理一批文件)和 -nolang(不本地化应用程序)。但是,当使用 ZipSFX 打包时,用户实际上会将参数传递给安装程序,而不是主 exe。

有没有办法将参数“路由”到主应用程序?先感谢您。

4

2 回答 2

1

根评论很有趣...

如果你真的不想通过 unpack-run-cleanup 场景安装,那么寻找安装程序没有多大用处,我同意。一种方法是查看 PortableApps。他们不断地用更复杂和更严格的程序来做这些技巧,并且可能有很好的工具来实现它。

另一种方法是将需要的文件作为资源存储在主应用程序中,然后解压缩到 %TEMP% 并在那里使用表单,并在退出时删除。这就是 SysInternals 工具安装其临时驱动程序的方式。最基本的方法应该是使用 Microsoft Resource Compiler。某些语言(如 Delphi)具有用于数据存储的本机组件。

这样做你可以制作一个小的存根 exe,那个 drop-shot 主应用程序,运行它,等待完成和清理(比主程序崩溃更可靠)或者让你的主程序自己做所有事情(但它会留下垃圾如果崩溃或以不寻常的方式退出本身)您可以选择 dropper 到 eb 与 UPX 等工具打包,但主要 exe 和 DLL 应保持未打包。

您可以使用缓存目录标签标记临时文件,以提示您可以在发现杂散时自由删除它们。

于 2012-07-27T07:02:46.050 回答
0

你看过 InnoSetup 吗?它是用 Delphi 编写的,因此您可能会很容易使用,而且开销很小。我认为您可以轻松地编写脚本以将一些参数传递到流中。


你试过 7-zip sfx 吗?一些像 Opera 这样的安装程序是在它之后制作的。

7-zip stock SFX 似乎在传递参数。 http://sourceforge.net/projects/sevenzip/forums/forum/45798/topic/4788506

7-zip 扩展 SFX 具有特殊选项,可将其余参数沿链传递。 http://7zsfx.info/en/switches.html#breakcmdline

于 2012-07-26T09:38:25.210 回答