Inno Setup为文件条目提供排除参数。 Excludes 参数指定与要从给定目录的递归搜索中遇到的文件中排除的文件匹配的模式列表。我希望文件的模式匹配从递归目录搜索 include 。
例如,假设我有一个名为 MyDir 的目录,并且有以下各个级别的 locale 目录,每个 locale 目录包含70个左右语言目录。 (我的应用程序是一个单一语言的应用程序,因此只包含一种语言的语言文件将减少数千个文件压缩到安装程序包中的文件数量。)
理想情况下,我会编写 Files 指令,例如
Source: MyDir\*; Includes: locale/en; Flags: recursesubdirs
但是,唉,没有 Includes 参数。或者,如果排除参数接受正则表达式,我可以编写类似的内容,
Source: MyDir\*; Excludes: locale\(?!en\); Flags: recursesubdirs
当我无法弄清楚如何使用基本功能执行此操作时,我尝试了自定义检查功能。遗憾的是,编译安装程序时未运行 Check 功能,因此外语文件会压缩到安装程序中,然后在运行安装设置向导时将其排除。
不包括主 File 指令中的所有 locale 目录,然后为每个 locale / en 目录声明一个“include”指令在 MyDir 下有没有办法用Inno Setup做到这一点?
更普遍地看待这个问题如果Inno Setup足够复杂,它将提供一些用于编译单语言安装程序的智能机制。但是,它的外语感知似乎仅限于在安装期间运行安装向导时选择显示哪些消息。