ISCC 在编译器中传递参数 IDE

ISCC passing a parameter in the Compiler IDE

我想知道如果我在 Inno Setup 编译器 IDE 中编译我的脚本是否可以通过 ISCC 选项(在 Inno Script Studio 中最佳)。

我发现 this question 说我应该做类似

#ifndef myDefine
    #define myDefine "value"
#endif

我已经试过了,因为 的回答。

我在 IDE 中尝试实现的是:

ISCC /DPHASE=test "D:\foo\bar.iss"

那么 IDE 中是否有我可以传递预处理器参数的选项?

不,除了在 .iss 文件中定义一些有意义的默认值之外别无他法。

如果您不希望值直接在主 .iss 文件中,您可以使用

从其他文件导入它们
#include "Defaults.iss"

也许有条件:

#ifexist "Defaults.iss"
  #include "Defaults.iss"
#endif

参见 Inno Setup Preprocessor: #include


请注意,Inno Setup IDE 不会实际启动 iscc.exe 二进制文件进行编译。它有 "iscc" 链接到自身。如果它为编译启动一个外部进程,就有可能以某种方式注入参数。