Inno Setup 仅排除树根中的一个子目录,但不排除树中具有相同名称的所有其他子目录
Inno Setup Exclude only a subdirectory in tree root, but not all other subdirectories within the tree with the same name
我的 [Files]
header:
[Files]
Source: "{#PathToRepoRoot}\Development\aaa\bbb\libs\MyApp.exe"; DestDir: "{app}"; \
Flags: ignoreversion
Source: "{#PathToRepoRoot}\Development\aaa\bbb\*"; DestDir: "{app}"; \
Excludes: "*.pyc, {#PathToRepoRoot}\Development\aaa\bbb\Build"; \
Flags: ignoreversion recursesubdirs createallsubdirs
它应该从 Build
文件夹中排除所有文件,但由于某些原因它没有。我试过将 bbb\*
更改为 bbb\
和 bbb
但它没有帮助。我还查看了 Inno Setup : Exclude a directory and its files also 但这没有帮助。奇怪的是 .pyc
个文件被排除在外
我发现 Excludes: "*.pyc, Build";
可以满足我的要求。据我了解,这将排除所有名为 Build
的文件。就我而言,这不是问题,因为我只有一个这样的文件。但我更喜欢更具体的排除。
我相信 Excludes
parameter 中的掩码是根据从根文件夹 ({#PathToRepoRoot}\Development\aaa\bbb
) 开始的相对路径进行评估的。所以你只想匹配 Build
.
但实际上,如果您仅将 Build
用作排除掩码,它将排除树中任何位置的所有 Build
文件和文件夹,因为掩码与 (相对)路径默认。在掩码前面加上反斜杠,以告诉 Inno Setup 根据(相对)路径的开头对其进行评估:
Excludes: \Build
我的 [Files]
header:
[Files]
Source: "{#PathToRepoRoot}\Development\aaa\bbb\libs\MyApp.exe"; DestDir: "{app}"; \
Flags: ignoreversion
Source: "{#PathToRepoRoot}\Development\aaa\bbb\*"; DestDir: "{app}"; \
Excludes: "*.pyc, {#PathToRepoRoot}\Development\aaa\bbb\Build"; \
Flags: ignoreversion recursesubdirs createallsubdirs
它应该从 Build
文件夹中排除所有文件,但由于某些原因它没有。我试过将 bbb\*
更改为 bbb\
和 bbb
但它没有帮助。我还查看了 Inno Setup : Exclude a directory and its files also 但这没有帮助。奇怪的是 .pyc
个文件被排除在外
我发现 Excludes: "*.pyc, Build";
可以满足我的要求。据我了解,这将排除所有名为 Build
的文件。就我而言,这不是问题,因为我只有一个这样的文件。但我更喜欢更具体的排除。
我相信 Excludes
parameter 中的掩码是根据从根文件夹 ({#PathToRepoRoot}\Development\aaa\bbb
) 开始的相对路径进行评估的。所以你只想匹配 Build
.
但实际上,如果您仅将 Build
用作排除掩码,它将排除树中任何位置的所有 Build
文件和文件夹,因为掩码与 (相对)路径默认。在掩码前面加上反斜杠,以告诉 Inno Setup 根据(相对)路径的开头对其进行评估:
Excludes: \Build