我有一个InnoSetup脚本应该排除一个子文件夹,其中包含其他子文件夹(> 40)除了之外的其他文件夹。 在编译器输出中,我确实看到此子文件夹中的文件正在压缩,但安装不会创建该文件夹,也不会在其他任何位置复制文件。
脚本如下所示:
((define (my-even? n)
(= 0 (modulo n 2)))
是包含其他文件夹的文件夹 - 我只想包含Release\extra\more\subs
。)
Release\extra\more\subs\need_this_one
第一行应该复制[Files]
; Use all files and folders except some special ones
Source: "Release\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs; Excludes: "more\subs"
; Do use some specific folders
Source: "Release\extra\more\subs\need_this_one\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs
中的所有文件和文件夹,但路径匹配“Release
”的任何子文件夹除外 - 那个。
我的印象是第二行会复制more\subs
子文件夹及其中的文件 - 但。
有谁知道为什么会这样?
答案 0 :(得分:1)
好吧,我似乎有回答自己问题的习惯。 ;)
问题是DestDir
需要{app}
之上的路径才能知道放置文件的位置。
因此,有效的脚本将是:
[Files]
; Use all files and folders except some special ones
Source: "Release\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs; Excludes: "more\subs"
; Do use some specific folders
Source: "Release\extra\more\subs\need_this_one\*"; DestDir: "{app}\extra\more\subs\need_this_one"; Flags: ignoreversion recursesubdirs
这确实有道理,虽然不清楚为什么,如果没有路径,它不会简单地将文件从need_this_one
复制到{app}
......