2011-10-29 15 views
34

Estoy usando Inno Setup versión 5.4.2.Inno Setup - #define directive - cómo usar la variable previamente definida?

Quiero definir la ruta de los archivos para copiar (el parámetro Fuente: en la sección [Archivos] como dos partes, una ruta base y nombres de subdirectorios, que utilizo para archivos especiales (como .dlls) . he intentado lo siguiente:

#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 

pero me sale el siguiente error de compilación

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

también probé para encerrar las llaves en "", como

#define MyAppSetupQtDLLs "{#MyAppSetupDir}\DLLs" 

Pero esta vez tiene

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

Así, ISSP está reemplazando correctamente la variable MyAppSetupDir, pero luego se pone otra vez el texto sencillo, como si no reconocía la directiva.

He buscado en todas partes, y ya encontré un discussion sobre el uso del {commonappdata}, pero no pude encontrar cómo hacerlo, ni en la documentación ni en la KB. Realmente agradecería algunos consejos, como parece que estoy cerca, pero no encontrar la solución adecuada ..

Respuesta

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

Muchas gracias Andreas !!!!!!!!!! – LittleFish

Cuestiones relacionadas