gpt4 book ai didi

inno-setup - 使 Inno Setup 自动将数据从自定义页面添加到 .inf 文件

转载 作者:行者123 更新时间:2023-12-05 06:39:34 32 4
gpt4 key购买 nike

我创建了一个带有自定义向导页面的安装程序。到目前为止一切正常。接下来,我想使用以下命令使用 /SAVEINF 创建一个设置文件(稍后以静默模式启动安装程序):

Installer.exe /SAVEINF="Unattended.txt"

输入所有用户输入并运行安装程序后,我查看了创建的文件。我看到的唯一用户输入是安装位置,但缺少我在自定义向导页面上的所有输入。我只看到:

[Setup]
Lang=en
Dir=C:\temp
Group=MyProgram
NoIcons=0
Tasks=

为什么?我需要做什么才能在设置文件中也包含自定义向导页面值?


更具体一点。
我使用命令行上的 /SAVEINF 选项启动我创建的安装程序,以创建一个设置文件。我希望所有项目都添加到此文件中,包括来 self 的自定义向导页面的项目,但事实并非如此。我只能从标准设置页面看到安装位置。

当然我可以手动添加它们并在安装程序代码中实现以从文件中读取它们,但我希望它是自动化的。

最佳答案

事实上,Inno Setup 不会将任何自定义字段保存到 .inf 文件中。

除了标准LangDirGroup,它永远不会将任何内容保存到.inf文件, NoIconsSetupTypeComponentsTasks 项。

参见 SaveInf function in Inno Setup source code :

procedure SaveInf(const FileName: String);
const
Section = 'Setup';
begin
SetIniString(Section, 'Lang',
PSetupLanguageEntry(Entries[seLanguage][ActiveLanguage]).Name, FileName);
SetIniString(Section, 'Dir', WizardDirValue, FileName);
SetIniString(Section, 'Group', WizardGroupValue, FileName);
SetIniBool(Section, 'NoIcons', WizardNoIcons, FileName);
if WizardSetupType <> nil then begin
SetIniString(Section, 'SetupType', WizardSetupType.Name, FileName);
SetIniString(Section, 'Components', StringsToCommaString(WizardComponents), FileName);
end
else begin
DeleteIniEntry(Section, 'SetupType', FileName);
DeleteIniEntry(Section, 'Components', FileName);
end;
SetIniString(Section, 'Tasks', StringsToCommaString(WizardTasks), FileName);
end;

Inno Setup 将从 .inf 文件中加载更多项目。查看LoadInf function .但同样,不是自定义字段/页面。只是可以使用命令行开关指定的选项,例如 SilentVerySilentNoRestart 等。


如果你想在.inf文件中自定义字段,你必须自己实现它们:
Inno Setup Load defaults for custom installation settings from a file (.inf) for silent installation .

关于inno-setup - 使 Inno Setup 自动将数据从自定义页面添加到 .inf 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44324278/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com