Inno Setup 在找不到匹配文件时避免 ExtractTemporaryFiles 中的异常

Inno Setup Avoiding exceptions in ExtractTemporaryFiles when no matching files are found

我在提取 *.sql 个文件时遇到 ExtractTemporaryFiles 问题

我并不总是在 [Files] 部分中有 SQL 脚本来提取,如下所述。我的问题是,如果安装中没有 sql 文件,ExtractTemporaryFiles('*.sql') 会引发异常。

Internal error: ExtractTemporaryFiles: No files matching "*.sql" found.

我可以使用 try:except 或其他丑陋的方式,例如始终在安装中包含 dummy.sql。所以我可以确保 ExtractTemporaryFiles 始终有一个文件可以提取它。

但我想知道在这种情况下避免异常的最佳方法是什么?

[Files]
Source: "Input\SQLSCRIPTS\*"; DestDir: "SQLSCRIPTS"; Flags: ignoreversion dontcopy skipifsourcedoesntexist

您可以使用 preprocessor 有条件地跳过 ExtractTemporaryFiles 调用:

#if FindFirst("Input\SQLSCRIPTS\*.sql", 0)
  ExtractTemporaryFiles('*.sql');
#endif