Inno Setup - директива #define - как использовать ранее определенную переменную? - PullRequest
40 голосов
/ 29 октября 2011

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

1 Ответ

66 голосов
/ 29 октября 2011
#define MyAppSetupDir "D:\MyApp\setup"
#define MyAppSetupQtDLLs MyAppSetupDir + "\DLLs"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...