我正在尝试编写一个 Inno Setup 安装程序来安装然后运行其他安装程序。我遇到的问题是尝试安装 Cygwin 时。我已经下载了 Cygwin 和我需要的所有软件包,因此我可以执行本地安装。然后我想在 Cygwin 安装中添加额外的文件和目录。
我的第一次尝试是这样的:
[Files]
Source: "{#Cygwin}\Cygwin\*"; DestDir: {tmp}\cygwin; Flags: recursesubdirs;
Source: "{#Cygwin}\additional\*"; DestDir: {tmp}\cygwin\additional; Flags: recursesubdirs
[Run]
Filename: "{tmp}\cygwin\setup-x86_64.exe"; Parameters: "-q -L"; WorkingDir: "{tmp}";
但这意味着我必须有一个脚本来添加其他文件,因为在通过该[Run]
部分中的命令实际安装 Cygwin 之前无处放置它们。
在添加其他文件之前,我曾尝试使用BeforeInstall
该部分中的脚本[Files]
来运行 Cygwin 安装程序,但是因为我必须使用通配符,Source: "{#Cygwin}\additional\*";
并且为目录树中的每个文件调用一次脚本。
Inno [Files]
Setup 部分似乎只接受源文件,而不接受源目录,除非目录有通配符。
有没有一种方法可以让它从目录树中安装所有内容而不使用通配符,或者有没有一种方法可以让BeforeInstall
脚本只运行一次,而不管复制了多少文件?