【发布时间】:2017-04-05 07:39:18
【问题描述】:
是否可以在 Inno Setup 中以编程方式生成文件标志?我的安装程序源在一个相当大的目录结构中包含大量文件。目前,我通过一次添加整个文件夹来最小化脚本的复杂性。这可以正常工作,但是,有许多文件散布在整个层次结构中,它们没有从压缩中受益(例如 *.jpg),并且显着增加了安装程序的构建时间。理想情况下,我想做这样的事情:
Source: "{#MySrc}\*"; DestDir: "{#MyDst}"; Flags: {code:GetFlags};
GetFlags 将检查当前文件的扩展名并为我不想压缩的文件类型返回“nocompression”。那可能吗?我似乎在文档或在线上找不到任何表明它是的东西。如果没有,还有其他直接的方法可以实现这一目标吗?
我能想到的唯一其他方法是为每种类型创建一个额外的文件行,就像这样
Source: "{#MySrc}\*"; DestDir: "{#MyDst}"; Excludes: "*.jpg,*.dds"; Flags: "ignoreversion recursesubdirs";
Source: "{#MySrc}\*.jpg"; DestDir: "{#MyDst}"; Flags: "ignoreversion recursesubdirs nocompression";
Source: "{#MySrc}\*.dds"; DestDir: "{#MyDst}"; Flags: "ignoreversion recursesubdirs nocompression";
虽然这是可行的,但每次遇到我决定不压缩的文件类型时,我都需要在多个地方进行此更改。所以如果可能的话,我宁愿把逻辑放在一个地方。
【问题讨论】:
标签: inno-setup