Ошибка выражения или директивы «Проверка»: может вызывать функцию «ExpandConstant» только в списках параметров - PullRequest
1 голос
/ 02 июня 2019

У меня есть это в моем [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 Ответ

1 голос
/ 02 июня 2019

Полученное сообщение об ошибке сбивает с толку.

После препроцессора вы получите следующий код:

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}', ...)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...