ISCC - /D 编译器参数似乎没有效果

问题描述 投票:0回答:1

我正在尝试使用 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"
,但它似乎对我的相位定义没有影响。

那么谁能解释一下我做错了什么?我在 Inno Setup Help 中找不到更多信息。

parameter-passing inno-setup
1个回答
10
投票

您使用行

 覆盖 
PHASE
 文件中的 
.iss

#define PHASE

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

/D
开关:

#ifndef PHASE
  #define PHASE
#endif
© www.soinside.com 2019 - 2024. All rights reserved.