在 Inno Setup 中,可以使用 {src} 常量来获取安装程序所在的目录,然后通过编写脚本来实现将文件安装到目标目录 {app} 的上一级目录。 下面是一个示例脚本: [Files] Source: "MyFile.exe"; DestDir: "{tmp}"; Flags: deleteafterinstall [Code] function GetParentDir(Path: String): String; begin Result := ExtractFilePath(ExcludeTrailingPathDelimiter(Path)); end; procedure CurStepChanged(CurStep: TSetupStep); var ParentDir: String; begin if CurStep = ssInstall then begin ParentDir := GetParentDir(ExpandConstant('{app}')); if not DirExists(ParentDir) then CreateDir(ParentDir); FileCopy(ExpandConstant('{tmp}\MyFile.exe'), ParentDir + '\MyFile.exe', False); end; end; 这个脚本中,{tmp} 常量表示 Inno Setup 运行时的临时目录,我们将需要安装到 {app} 上一级目录的文件放到了该临时目录中。然后,在 CurStepChanged 函数中,当安装步骤切换到 ssInstall(即安装阶段)时,先获取目标目录 {app} 的上一级目录路径,并检查该目录是否存在,若不存在则创建之。最后使用 FileCopy 函数将文件从临时目录拷贝到上一级目录。 请注意,由于在 Inno Setup 中可以通过用户选择来修改安装目录 {app} 的值,因此有可能会出现无法正确获取上一级目录的情况。如果您希望确保能够正确地安装文件到指定的目录,建议在安装程序中添加必要的提示或限制。