5

我去过 stackoverflow.com 很多次,但这是我第一次在这里发帖。我会尽量做到具体和切中要害。

我正在将我所有的 PC 光盘转换为数字 .iso 文件,并且我有一些游戏是多安装光盘。

最近我开始使用 Inno Setup,到目前为止,我已经成功地将多光盘安装整合到单个可执行程序中。

我目前关注的是战地1942系列。它需要初始安装,多次扩展安装,加上一个主要补丁,以及安装一个需要多个步骤的 mod。

我向社区提出的问题是,我如何将上述所有文件打包到一个可执行文件中并让它们按顺序安装所有内容?如果可以通过 Inno 完成,我想尝试一下。或者,如果您建议其他程序,我总是可以花时间尝试和学习它。

不久前我曾尝试为此制作一个批处理文件,但结果有点笨拙,我真的不喜欢它的结果。

另外,有没有办法在 Inno 中插入复选框来选择运行哪些可执行文件?(帖子的这一部分不如上述要求重要,如果可能的话,只是一种奖励)。

真的很期待社区对此的回应!

4

2 回答 2

2

在我看来,如果最终结果应该是安装了 mod 的完整补丁版本,您应该构建新的安装程序,其中将包含带有 mod 的完整补丁游戏。您可以通过简单的方法找出每个补丁、插件、MOD 更改/添加的内容。安装每个东西(插件/mod/等)后,制作安装文件夹的备份副本并检查注册表项。然后只需比较文件夹/目录并过滤掉每个补丁、插件、MOD 的特定文件。最后,您将能够将每个插件和 MOD 添加为Components(文件和注册表项) - 这将在组件选择向导页面中创建复选框。

最简单的方法:对于安装结束时的外部安装程序/第 3 方应用程序,可在此处找到更多信息:http ://www.jrsoftware.org/ishelp/index.php?topic=runsection

于 2012-11-20T21:03:12.013 回答
2

您可以遵循的一种方法是创建安装程序的安装程序,您只需打包您现在拥有的安装程序,并在安装时按照您现在执行的精确顺序运行每个安装程序,以获得完全安装和修补的游戏。

这样,您不必了解每个游戏的每个文件/注册表项或其他设置,以及如果您忘记包含对它至关重要的内容而失败的风险。

为了正确地做到这一点,您必须做的是了解当前安装程序是否从命令行参数或文本文件接受它自己的配置(许多安装程序都这样做,例如/silent/verysilent命令行参数运行背景)。完成后,使用脚本的 [run] 部分启动通过命令行或预制文本文件传递参数的每个安装程序,甚至可以使用 [code] 动态创建文本文件或命令行参数带有内置 pascal 脚本的部分。

如果您的安装程序不接受参数,您甚至可以达到您的目标,将所有内容保存在一个可以运行的 exe 文件中,然后在每个单独的安装程序启动时对其进行配置。

您的问题过于宽泛,无法在此处包含一个工作示例,但您可以通过研究samples目录中的脚本来找到指导。

至于你的最后一个问题

另外,有没有办法在 Inno 中插入复选框来选择运行哪些可执行文件?

您可以使用 [run] 部分让用户选择最后要运行的内容。

或者您可以使用 [tasks] 部分来创建不同sets的文件/配置。

最后一句话是检查安装脚本条目的可用标志,例如,deleteafterinstall清理[files]条目中包含的单个安装程序,或 [uninstallrun] 部分也提供统一的卸载程序。

于 2012-11-20T23:48:36.730 回答