我在 Inno Setup 中使用“排除”标志,以便根据用户的体系结构从安装中排除子目录名称“Bin32”或“Bin64”。
我想要的只是不安装无用的文件夹及其所有文件和子目录。
这是我目前的规则:
[Files]
Source: "Z:\Work\temp\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
; Exclude
Source: "*"; Excludes: "\Bin64"; DestDir: "{app}"; Flags: recursesubdirs; Check: not Is64BitInstallMode
Source: "*"; Excludes: "\Bin32"; DestDir: "{app}"; Flags: recursesubdirs; Check: Is64BitInstallMode
首先,我不太明白排除规则开头的“*”代表什么?
其次,它适用于 Bin32/64 文件夹内的所有子目录,但文件仍然已安装,我无法找到不安装它们的方法...
Thx.
每个条目都是一个单独的操作,不受任何其他条目的影响。考虑到这一点,就会发生以下情况:
- 第一行安装所有内容
z:\work\temp
.
- 第二行,如果处于 32 位模式,则安装以下所有内容
SourceDir
except \Bin64
- 第 3 行,如果处于 64 位模式,则安装以下所有内容
SourceDir
except \Bin32
我希望你的SourceDir
(如果未指定脚本路径)与Z:\Work\Temp
因此,无论如何,您基本上最终都会安装所有东西。
如果您复制第一个条目,并将Excludes
(没有 \ 前缀)和Check
参数到它,它应该按照您的要求工作:
[Files]
Source: "Z:\Work\temp\*"; Excludes: "Bin64"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Check: not Is64BitInstallMode
Source: "Z:\Work\temp\*"; Excludes: "Bin32"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Check: Is64BitInstallMode
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)