在 Inno Setup 安装期间从 ini 文件读取目标目录

Read destination directory from ini file during install time in Inno Setup

我需要在安装时从 ini 文件读取目录路径。

[Code] 部分下,我定义了一个函数,如

function GetDirectoryFromIni: String;
begin
  Result := 
    GetIniString('Directories' , 'Name' ,
      ExpandConstant('{app}')+'\Default_Path\' , 
      ExpandConstant('{app}')+'my_ini_file.ini');
end;

如何在 [Files] 部分使用此 function/path/string?

类似于:

[Files]
Source: "C:\Source_Directory\*.*"; DestDir: "GetDirectoryFromIni"; \
    Flags: ignoreversion

基本逻辑是如果用户更改了以前安装的“Default_Path”我想调整使用它,否则它使用第一次安装程序时的默认路径。

我似乎无法定义或设置字符串变量来使用 GetDirectoryFromIni 结果。有人可以帮忙吗?

需要参考[Files]部分的功能,如

[Files]
Source: "C:\Source_Directory\*.*"; DestDir: "{code:GetDirectoryFromIni}"; Flags: ignoreversion

然后就可以了。

即使没有任何 Pascal Script 代码,您也可以做到这一点。有 {ini} "constant":

[Files]
Source: "C:\Source_Directory\*.*"; \
  DestDir: "{ini:{app}\my_ini_file.ini,Directories,Name|{app}\Default_Path\}"; \
  Flags: ignoreversion

有关您预期解决方案的答案,请参阅: