指令或参数“检查”的表达式错误:只能在参数列表中调用函数“ ExpandConstant”

时间:2019-06-02 08:41:11

标签: inno-setup

我在[ISPP]部分有此内容:

; Help Documentation download URL
#define HelpDocSetupURL "https://www.publictalksoftware.co.uk/downloads/PublicTalksHelpDocumentationSetup.exe"

我在[FILES]部分有此内容:

Source: "{tmp}\HelpDocSetup.exe"; \
    DestDir: "{app}"; \
    Flags: external deleteafterinstall; \
    Tasks: downloadhelp; \
    Check: DwinsHs_Check( ExpandConstant('{tmp}\HelpDocSetup.exe'), {#HelpDocSetupURL}, 'My_Setup', 'Get', 0, 0 )

编译时出现错误:

  

第441行:指令或参数“检查”的表达式错误:只能在参数列表中调用函数“ ExpandConstant”。

我可以使用文字路径,但是如何使用#define?


更新

  • 我知道{#HelpDocSetupURL}正在发出预处理程序指令,因此只能在编译时知道结果(正确)。
  • 我还理解该错误显示“指令或参数“检查”表达式错误:只能在参数列表中的调用函数“ ExpandConstant” >。”

因此,在这种情况下,我们不允许使用预处理程序指令。目前,我改用文字路径。

1 个答案:

答案 0 :(得分:1)

您收到的错误消息令人困惑。

经过预处理程序后,您将获得以下代码:

Check: DwinsHs_Check( ExpandConstant('{tmp}\HelpDocSetup.exe'), https://www.publictalksoftware.co.uk/downloads/PublicTalksHelpDocumentationSetup.exe, 'My_Setup', 'Get', 0, 0 )

什么显然是语法错误。该代码缺少引号。

您想要这个:

Check: DwinsHs_Check( ExpandConstant('{tmp}\HelpDocSetup.exe'), '{#HelpDocSetupURL}', ...)