2010-01-04 5 views

Répondre

13

Selon this page dans la documentation d'installation Inno, peut être récupéré la valeur des variables d'environnement en utilisant la syntaxe suivante:

{%name|default} 
+1

Je ne peux pas utilisez les variables d'env pour une raison quelconque. Quelqu'un peut-il poster un exemple? J'ai ajouté {% OS} au nom du fichier de sortie et tout ce que je récupère est le nom du fichier d'origine avec la chaîne "{% OS}" ajoutée - pas la valeur que je veux de l'environnement. – Tim

+3

@Tim: Si vous voulez utiliser la variable dans une chaîne à l'intérieur de votre [code], utilisez ExpandConstant ('{% OS}') – panschk

14

je suis tombé sur le même problème lorsque vous essayez de spécifier l'emplacement de la source des fichiers dans le Section [Fichiers]. J'ai utilisé la fonction GetEnv pour définir une nouvelle constante.

#define Qt5 GetEnv('QT5') 
[Files] 
Source: {#Qt5}\bin\Qt5Concurrent.dll; DestDir: {app}; 
+0

c'est la bonne façon d'utiliser dans define. la notation {% name | default} ne fonctionne pas ici. – pHiL

+0

C'est génial, merci! Je cherche maintenant un moyen d'exprimer une valeur par défaut, mais c'est un bon début. Essayez – CJBrew

+0

'' #define QT5 getenv ('QT5') #if QT5 == "" #define QT5 "bla" #endif '' –

-1

Il peut être encore plus facile:

OutputDir={#GetEnv("TEMP")}\ 
+0

C'est une macro préprocesseur. C'est résolu au moment de la compilation! –

-1

Si la TEMP variable n'existe pas alors la valeur par défaut sera utilisée - ..\..\distr\))))

OutputDir={#StringChange(GetEnv("TEMP")+"\", StringChange(GetMD5OfString(GetEnv("TEMP")), "d41d8cd98f00b204e9800998ecf8427e", "\"), "..\..\distr\")} 
+0

C'est une macro de préprocesseur. C'est résolu au moment de la compilation! –

Questions connexes