我们需要在Inno Setup中完成以下要求。我们需要支持基于密码安装文件,并通过互联网更新或DVD
自动更新下一版本要求是:
以上场景是从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中的上述内容?
答案 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;
,以便它们共享卸载日志。