ISCC - /D 编译器参数似乎无效

ISCC - /D compiler-parameter seems to have no effect

我正在尝试使用 Inno Setup 命令行编译器的 /D 参数来选择我的设置中应包含哪些文件。

代码如下所示:

#define MyAppName "MyApp"
#define MyAppVersion "1.0.0"
(....)
#define PHASE

[Setup]
AppVersion={#MyAppVersion}
(....)

[Files]
Source: "C:\temp\myfile.txt"; DestDir: "{app}";

#if PHASE == "test"
    Source: "C:\temp\onlyInTestBuildNeeded.txt"; DestDir: "{app}";
#endif

我尝试编译脚本 ISCC /DPHASE=test "D:\foo\bar.iss" 但它似乎对我的 PHASE 定义没有影响。

所以谁能解释一下我做错了什么?我在 Inno Setup Help.

找不到更多信息

您用

行覆盖 .iss 文件中的 PHASE
#define PHASE

删除该行或使用 #ifdef 检查它,以便仅在未通过命令行设置时定义它 /D 开关:

#ifndef PHASE
  #define PHASE
#endif