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

如何基于Inno Setup实现双文件的用户自定义目录安装?

问题修复方案

你的脚本存在冗余实现和路径配置错误,无需额外自定义目录选择页,利用Inno Setup自带的安装目录选择功能即可满足需求,以下是修正后的完整脚本及说明:

修正后的脚本

; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

[Setup]
AppName=Testapp
AppVersion=1.0
; 设置默认安装路径为用户文档目录下的Subdirectory
DefaultDirName={userdocs}\Subdirectory
DefaultGroupName=TestProgram
PrivilegesRequired=lowest
OutputBaseFilename=TestProgram
; 确保自动创建不存在的安装目录(Inno默认开启,显式声明更清晰)
CreateAppDir=yes

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked

[Files]
; 两个文件均安装到用户选择的{app}目录
Source: "program.exe"; DestDir: "{app}"
Source: "readme.txt"; Flags: onlyifdoesntexist; DestDir: "{app}"

[Icons]
; 桌面图标指向实际安装目录下的程序,避免写死路径
Name: "{userdesktop}\Testapp"; Filename: "{app}\program.exe"; Tasks: desktopicon

关键修正点

  • 移除冗余自定义页面:删除了[Code]段的自定义目录选择页代码,Inno Setup默认的wpSelectDir页面已经提供了用户选择安装目录的功能,无需重复开发。
  • 统一安装路径变量:所有文件的DestDir都使用{app}变量,该变量会自动关联用户在安装过程中选择的目录,确保两个文件安装到同一位置。
  • 修正默认路径配置:直接在DefaultDirName中设置默认路径,用户可修改该路径,若路径不存在,Inno Setup会自动创建目录。
  • 修复图标路径:原脚本中图标路径写死为固定目录,修正为{app}\program.exe,保证图标指向实际安装的程序文件。

功能说明

  • 安装时用户会看到默认的目录选择界面,显示预设的{userdocs}\Subdirectory路径,可自由修改。
  • 若用户选择的目录不存在,安装程序会自动创建该目录。
  • readme.txt的onlyifdoesntexist标记会避免覆盖目标目录中已存在的同名文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 08:50:29