Подтвердить что ты не робот

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}, но я не мог найти, как это сделать, ни в документации, ни в в КБ. Я бы очень признателен за некоторые подсказки, поскольку он выглядит я близким, но не нахожу правильного решения.

4b9b3361

Ответ 1

#define MyAppSetupDir "D:\MyApp\setup"
#define MyAppSetupQtDLLs MyAppSetupDir + "\DLLs"