我试图找出如何使用Inno Setup安装程序将文件复制到多个位置。
[Files]
Source: "myfolder\*" DestDir: {multipe dirs?}
基本上我有一个函数GetInstallDirs()
,它查找注册表位置中的所有键,并使用插件安装路径形成一个数组,并返回一个目录数组。而不是为每个目录添加一行,是否有一种方式DestDir
采用多个目录?
答案 0 :(得分:2)
所以你想使用DestDir: "{code:GetInstallDirs}"
?
DestDir
只能指向一个文件夹。
如果您需要将同一文件安装到多个文件夹,则必须在[Files]
部分中创建更多条目。请注意,Inno Setup将compile the source file only once to the installer。
我不知道以编程方式创建多个条目的简单方法。
你可以创建“很多”条目,如:
[Files]
Source: "myfolder*"; DestDir: "{code:GetInstallDirs|1}"; Check HasInstallDir(1)
Source: "myfolder*"; DestDir: "{code:GetInstallDirs|2}"; Check HasInstallDir(2)
Source: "myfolder*"; DestDir: "{code:GetInstallDirs|3}"; Check HasInstallDir(3)
...
您可以使用Inno Setup预处理器创建大量此类条目。
#define EntryI
#sub AddEntry
Source: "myfolder*"; DestDir: "{code:GetInstallDirs|{#EntryI}}"; \
Check: HasInstallDir({#EntryI})
#endsub
#for {EntryI = 1; EntryI <= 100; EntryI++} AddEntry