如何将同一文件安装到多个位置(Inno Setup)

时间:2015-06-12 00:37:15

标签: inno-setup

我试图找出如何使用Inno Setup安装程序将文件复制到多个位置。

[Files]
Source: "myfolder\*" DestDir: {multipe dirs?}

基本上我有一个函数GetInstallDirs(),它查找注册表位置中的所有键,并使用插件安装路径形成一个数组,并返回一个目录数组。而不是为每个目录添加一行,是否有一种方式DestDir采用多个目录?

1 个答案:

答案 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