Inno Setup - директива #define - как использовать ранее определенную переменную?

Я использую Inno Setup версии 5.4.2.

Я хочу определить путь для копируемых файлов (параметр Source: в разделе [Files] в виде двух частей, базового пути и имен подкаталогов, которые я использую для специальных файлов (например, .dll). Я пробовал следующее:

#define MyAppSetupDir "D:\MyApp\setup"
#define MyAppSetupQtDLLs {#MyAppSetupDir}"\DLLs"
[Files]
Source: {#MyAppSetupDir}\MyApp.exe; DestDir: {app}; Flags: ignoreversion
Source: {#MyAppSetupDLLs}\mstext35.dll; DestDir: {app}; Flags: ignoreversion

но получаю следующую ошибку компиляции

[ISPP] Expression expected but opening brace ("{") found.

Я также пытался заключить скобки в "", как

#define MyAppSetupQtDLLs "{#MyAppSetupDir}\DLLs"

Но на этот раз я получил

Error: Source file "D:\MyApp\setup\{#MyAppSetupDir}\DLLs\mstext35.dll" does not exist.

Итак, ISSP правильно заменяет переменную MyAppSetupDir, но затем снова помещает простой текст, как будто не распознает директиву.

Я искал везде, и уже нашел обсуждение об использовании {commonappdata}, но я не смог найти, как это сделать, ни в документации, ни в KB. Я был бы очень признателен за подсказки, так как похоже, что я близок, но не нахожу правильного решения...

41
задан Community 23 May 2017 в 10:31
поделиться