2016-11-30 124 views
1

我正在尝试构建一个安装程序,并使用基于某些配置选项运行其他安装程序的Inno安装程序。为了简单起见,假设我有20个安装程序,可以安装5种不同的配置,其中每种配置都有一些必需的和一些可选的安装程序。配置A可能需要安装程序1,2,5,6,并且具有11,13和14的选项。配置B可能需要1,2,3,9,并且具有用于12,19和20的选项。等等。隐藏Inno安装程序组件

我已经为每个安装程序组件。理想情况下,我希望使用类型的配置,但我不知道如何使一些组件需要而其他人可选(如果这是可能的,请告诉我)。所以,目前我只有一个“自定义”类型,并使用自定义向导页面,允许您指定配置。根据选择,我使用代码来检查和禁用(以便它们不能被取消选定)所需的组件,同时仍允许选择可选的组件。

总的来说,它工作得很好,但我希望只显示适用于所选配置的组件。因此,使用上面的示例,对于配置A,“组件”页面将显示1,2,5,6选中和禁用,以及11,13和14未选中和启用。是否可以保留所有定义的组件,但隐藏那些不适用的组件?或者也许定义多个组件页面,但只显示那个配置的页面?

我发现this解决方案在线,但由于用户可能会点击后退按钮,我可以删除组件但不重新添加组件的概念似乎不是一个好选择。

回答

0

不,组件列表(ComponentsList)仅在安装程序启动时才填充一次。它不能在运行时更改。

有了这样复杂的设置,您最好放弃内置组件功能并构建您自己的自定义“组件”页面。或者您可以保留内置的“组件”页面,只需隐藏标准组件列表并构建自己的组件。

创建类似的布局,但在安装“类型”更改时重新创建“组件”列表。

您可以使用Check parameterFiles,Registry等部分条目绑定到自定义组件。或者,您可以根据可见自定义组件列表中的选择来更新真实隐藏组件列表。

+0

感谢您的回复马丁。为了确保我很清楚,你的建议基本上不是定义标准组件,而是创建自定义向导页面来模拟每个配置的组件页面。然后使用File/Run部分中的Check参数来确定实际运行哪些安装程序。我的理解是否正确? – user7134019

+0

我的回答比较宽泛。但是,是的,这是一个可能的实现。 –

相关问题