2017-03-10 5 views
0

J'ai besoin de changer un script d'installateur pour mettre les fichiers dans C:\Program Files (x86) pour 32 bits et C:\Program Files pour 64 bits.

Je l'avais espéré $PROGRAMFILES était la bonne variable à utiliser mais de la docs, cela pointe toujours à C:\Program Files (x86).

"The program files directory (usually C:\Program Files but detected at runtime). 
On Windows x64, $PROGRAMFILES and $PROGRAMFILES32 point to C:\Program Files (x86) 
while $PROGRAMFILES64 points to C:\Program Files. Use $PROGRAMFILES64 when 
installing x64 applications." 

Je connais la façon de tester le système lors de l'installation avec ${If} ${RunningX64} mais il y a des dizaines de $PROGRAMFILES entrées dans le script, donc je voudrais éviter cette approche si possible.

Y a-t-il une variable différente qui est définie automatiquement?

Répondre

1

Il n'y a pas de variable de fichier de programme correspondant au système. $PROGRAMFILES correspond à la durée de vie de l'installateur.

Si vous devez faire correspondre le nombre de bits du système, vous devez créer votre propre variable et l'initialiser en .onInit. $PROGRAMFILES64 se dégrade probablement en $PROGRAMFILES32 sur les systèmes 32 bits, mais je ne suis pas sûr si je recommanderais de l'utiliser comme ça.

Ce n'est généralement pas un problème car vous devez utiliser $InstDir pour référencer le dossier de destination.