Inno Setup只排除树根中的一个子目录,但不排除树中所有其他同名子目录



我的[Files]头中有这个:

[Files]
Source: "{#PathToRepoRoot}DevelopmentaaabbblibsMyApp.exe"; DestDir: "{app}";  
Flags: ignoreversion
Source: "{#PathToRepoRoot}Developmentaaabbb*"; DestDir: "{app}"; 
Excludes: "*.pyc, {#PathToRepoRoot}DevelopmentaaabbbBuild"; 
Flags: ignoreversion recursesubdirs createallsubdirs

它应该从Build文件夹中排除所有文件,但由于某些原因,它没有。我尝试过将bbb*更改为bbbbbb,但没有帮助。我还看了一下Inno Setup:排除目录及其文件,但这没有帮助。奇怪的是.pyc文件被排除在之外

我发现做Excludes: "*.pyc, Build";就是我想要的。据我所知,这将排除所有名为Build的文件。就我而言,这不是问题,因为我只有一个这样的文件。但我更喜欢更具体的排除。

我相信Excludes参数中的掩码是根据从根文件夹({#PathToRepoRoot}Developmentaaabbb(开始的相对路径计算的。所以你只想匹配Build

但实际上,如果仅将Build用作排除掩码,则会排除树中任何位置的所有Build文件和文件夹,因为默认情况下,掩码与(相对(路径的末尾匹配。在掩码前面加一个反斜杠,告诉Inno Setup根据(相对(路径的开头对其进行评估:

Excludes: Build

最新更新