You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Inno Setup如何将弹窗选择的安装目录应用到[Files]段的DestDir配置

你不需要手动替换[Files]段里的{app}常量,Inno Setup 中{app}本身就会自动指向最终生效的安装目录,你通过DefaultDirName={code:ChooseDir}设置的路径会直接作为{app}的取值。

你当前的代码只需要修正一处问题:Pascal 脚本中返回的路径如果包含{autopf}这类内置运行期常量,不会自动解析,需要调用ExpandConstant方法手动展开常量,修正后的函数代码如下:

function ChooseDir(Param: string): String;
var
  FinalDir: String;
begin
  case MsgBox('是否为桌面安装?'#13#10'选否则为Centurion OS仪器安装', mbConfirmation, MB_YESNO) of 
    IDYES: FinalDir := ExpandConstant('{autopf}\{#MyAppName}');
    IDNO: FinalDir := 'C:\Encon Evolution\{#MyAppName}';
  end;
  Result := FinalDir;
end;

你原有的[Files]段配置完全不需要改动,{app}\Encon会自动拼接成你弹窗选择的对应目录下的Encon子路径。

额外可选优化:如果不需要用户手动修改安装目录,避免选择的场景和实际安装目录不符,可以在[Setup]段添加配置:

DisableDirPage=yes

这样安装过程会跳过目录选择页,直接用你弹窗返回的路径作为安装目录。

内容的提问来源于stack exchange,提问作者IVOR_MECTIN

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 02:42:03