Innosetup - “if”基于传递的参数

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

我正在通过 powershell 脚本运行我的 setup.iss 文件:

if ($something -eq 'test') {
    $usePort= 1
}

if ($something -ne 'dev') {
    $usePort= 0
}

& $innoiscc ".\setup.iss" /DUSEPORT="$usePort" 

在我的 setup.iss 中,我想使用该 USEPORT 来确定是否需要添加下一步:

#ifndef USEPORT
  #define USEPORT "0"
#endif

(... not relatable code)

if (#USEPORT = "1") then
  begin
    do_something
  end;

带有 #ifndef 的行只是为了确保每次 USEPORT 都会有任何值,因为从 .ps1 文件中,也有可能 USEPORT 不会被声明。 我在网上不断收到错误“Char error”

if (#USEPORT = "1") then

我也尝试过:

if (#USEPORT = 1) then
if (#USEPORT == 1) then
if (#USEPORT == "1") then

具有相同的结果,并且错误指向同一行。 当我尝试删除该 # 字符时,如下所示:

if (USEPORT = 1) then
if (USEPORT == 1) then
if (USEPORT == "1") then

我遇到错误了

未知标识符“USEPORT”

出了什么问题?

delphi inno-setup pascal
1个回答
0
投票

使用

#if..#endif
代替
if
,例如:

#ifndef USEPORT
  #define USEPORT "0"
#endif

(... not relatable code)

#if (USEPORT == "1")
do_something
#endif
© www.soinside.com 2019 - 2024. All rights reserved.