Inno设置 - 根据功能安装文件并自动更新

时间:2017-10-24 12:46:58

标签: inno-setup

我们需要在Inno Setup中完成以下要求。我们需要支持基于密码安装文件,并通过互联网更新或DVD

自动更新下一版本

要求是:

  1. 我们为一个应用程序提供了几个常用文件
  2. 最重要的是,我们需要根据每个功能的密码安装FeatureA或FeatureB或FeatureC。像这样我们有20个不同的功能。
  3. 用户一次只能安装一个功能。但是他们可以根据密码添加其他功能。
  4. 以上场景是从DVD映像运行设置。在int更新的情况下,客户安装的所有功能都应自动更新,而无需用户提供密码。它应该默默地完成。

    示例:

    之前未安装我们软件的PC。客户使用SWVER001 DVD。使用Feature1PWD安装=>将安装基本SW +公共文件+ Feature1文件

    再次使用SWVER001 DVD安装。这次用户给出Feature2PWD ==>将安装Feature2文件。基本SW + Commonfiles + Feature1文件将保留并且不受影响。 Main Sw将同时看到Feature 1和Feature 2

    用户使用互联网更新安装SWVER002。这里安装程序应该看到基本SW +公共文件+ Feature1文件+ Feature2文件。它应该在没有用户输入的情况下一次更新所有4个。无声更新会非常好

    我正在考虑以下方法 1.使用基本/通用安装文件创建一个主安装程序 2.然后为每个功能创建子安装程序 3.然后,主设置将根据passowrd调用子安装程序。 4.主要设置将存储在registry / ini文件中选择的先前功能

    如果是int update,请获取从registry / ini中选择的上一个功能,然后在没有任何用户输入的情况下自动执行静默安装

    有哪些其他更好的建议可用于配置Inno Setup中的上述内容?

1 个答案:

答案 0 :(得分:1)

为每个功能创建组件并根据输入的密码自动选择组件更方便。

类似的东西:

outliers = outliers.merge(sum_Day.rename(columns={'bikeid': 'outlier'}), on = 'outlier', \
how = 'left')

要进行更新,请为每个组件/功能创建单独的安装程序。对所有安装程序使用相同的[Components] Name: "FeatureA"; Description: "Feature A" Name: "FeatureB"; Description: "Feature B" Name: "FeatureC"; Description: "Feature C" [Code] function TestComponentPassword( Password: string; Component: string; ComponentPassword: string): Boolean; var I: Integer; begin Result := (Password = ComponentPassword); if Result then begin for I := 0 to WizardForm.ComponentsList.Items.Count - 1 do begin WizardForm.ComponentsList.Checked[I] := (WizardForm.ComponentsList.Items[I] = Component); end; end; end; function CheckPassword(Password: String): Boolean; begin Result := TestComponentPassword(Password, 'Feature A', 'aaa') or TestComponentPassword(Password, 'Feature B', 'bbb') or TestComponentPassword(Password, 'Feature C', 'ccc'); end; ,以便它们共享卸载日志。