Inno Setup 在安装时包含一个空文件夹时给出错误 "No files found matching"

Inno Setup giving error "No files found matching" when including an empty folder to installation

我一直在尝试使用 Inno Setup 创建安装程序文件,但我 运行 遇到了一些错误。

以下是我遇到错误的代码片段:

[Files]
Source: "E:\Programs\Kiara Project\Kiara Project\EXE\exe.win-amd64-3.8\Kiara.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "E:\Programs\Kiara Project\Kiara Project\EXE\exe.win-amd64-3.8\Intro_Images\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "E:\Programs\Kiara Project\Kiara Project\EXE\exe.win-amd64-3.8\lib\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "E:\Programs\Kiara Project\Kiara Project\EXE\exe.win-amd64-3.8\Notes\*"; DestDir: "{app}"; Flags: ignoreversion
Source: "E:\Programs\Kiara Project\Kiara Project\EXE\exe.win-amd64-3.8\Screens\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "E:\Programs\Kiara Project\Kiara Project\EXE\exe.win-amd64-3.8\Screenshots\*"; DestDir: "{app}"; Flags: ignoreversion
Source: "E:\Programs\Kiara Project\Kiara Project\EXE\exe.win-amd64-3.8\System_Files\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "E:\Programs\Kiara Project\Kiara Project\EXE\exe.win-amd64-3.8\python38.dll"; DestDir: "{app}"; Flags: ignoreversion

我收到此错误:

No files found matching "E:\Programs\Kiara Project\Kiara Project\EXE\exe.win-amd64-3.8\Notes*"

如果有帮助,Notes 是一个我必须包含的空文件夹。

有人可以帮我解决这个问题吗?

您不能(滥用)使用 [Files] 部分条目来创建空目录。 [Files] 部分用于文件,而不是文件夹。

使用[Dirs] section创建文件夹。

[Dirs]
Name: "{app}\Notes"

此外,如果您想将文件安装到子文件夹中,则必须将该子文件夹作为目标路径:

[Files]
Source: "E:\Programs\Kiara Project\Kiara Project\EXE\exe.win-amd64-3.8\Intro_Images\*"; \
    DestDir: "{app}\Intro_Images"; Flags: ignoreversion recursesubdirs createallsubdirs

或者,包含项目的整个根文件夹并使用 Excludes parameter 排除您不想包含的文件。

[Files]
Source: "E:\Programs\Kiara Project\Kiara Project\EXE\exe.win-amd64-3.8\*"; \
    DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; \
    Excludes: "do_not_include_this\*"

虽然这可能是一种脆弱的方法。