Inno Setup安装时如何从ini文件读取路径并在[Files]段使用
解决方案
步骤1:修正[Code]段的函数定义
Inno Setup 中通过{code:}标记调用的自定义函数,必须接收一个字符串类型的参数(即使你不需要用到这个参数),同时原代码中ini文件路径拼接漏了反斜杠,修正后的代码如下:
function GetDirectoryFromIni(Param: String): String; begin Result := GetIniString('Directories' , 'Name' , ExpandConstant('{app}')+'\Default_Path\' , ExpandConstant('{app}')+'\my_ini_file.ini'); end;
步骤2:修改[Files]段的DestDir配置
使用{code:函数名}的格式调用自定义函数获取返回值作为目标路径,示例如下:
[Files] Source: "C:\Source_Directory\*.*"; DestDir: "{code:GetDirectoryFromIni}"; \ Flags: ignoreversion createallsubdirs
注意事项
- 新增
createallsubdirs标记是为了自动创建不存在的多级目录,避免路径不存在导致文件复制失败 - 该实现完全匹配需求:如果之前安装过且ini文件中存在自定义的
Name路径配置,就复用该路径;首次安装找不到对应配置项时,自动使用{app}\Default_Path\作为默认路径
内容的提问来源于stack exchange,提问作者Some1Else
相关产品推荐
相关产品推荐

