Changer le dossier d'installation par défaut dans les INS
Je suis en train d'écrire un programme d'installation de windows à l'aide de nsis. Ce programme d'installation contient une application web qui est exécuté sur le dessus de xampp, de sorte que xampp est également installé en tant que service avec cette application. Mais xamp donne un problème lorsqu'il est installé dans la machine 64 bits sur Windows 7. Cela est dû au chemin d'accès au répertoire en question C:\Program Files (x86) comme indiqué ici.
XAMPP Solution de l'Erreur? Je l'ai installé sur mon Windows XP en Dual Boot de la Machine
Mais actuellement, l'installation automatique de chemin d'accès est défini comme suit dans le programme d'installation.
C:\Program Files (x86)\myapplication
Le script d'installation est juste la macro suivante pour ajouter le répertoire sélecteur de page.
!insertmacro MUI_PAGE_DIRECTORY
Comme une solution ce que je vais faire sont les actions suivantes.
- Modifier le répertoire par défaut pour c:\Program Fichiers
- Si l'utilisateur de choisir le dossier x86 donner un message d'erreur de choisir un autre répertoire.
Pour cela j'ai besoin pour obtenir le répertoire d'installation de chemin par
$INSTDIR
et
- de vérifier s'il existe une sous-chaîne de x86 avec ce chemin
- s'en donner les messages d'erreur.
- Modifier le chemin par défaut c:\Program Fichiers
Puisque je ne suis pas très familier avec nsis, je suis incapable d'écrire ce programme.
Quelqu'un peut m'aider sur ce problème?
OriginalL'auteur Thilanka | 2012-05-04
Vous devez vous connecter pour publier un commentaire.
Sur un win7/64, 64 bits fichiers de programme peut être obtenu à partir d'une 32 bits de l'application via le
%ProgramW6432%
variable d'environnement.Vous pouvez essayer de le faire avec
ReadEnvStr
:c:\program files
(si pas configuré ailleurs)Voici un bout de code de test :
Dans votre cas, il pourrait le faire :
Modifier: Pour le point de refuser
Program Files (x86)
vous pouvez utiliser le.onVerifyInstDir
méthode de rappel qui a été donné par Anders pour une autre question, il va vérifier le répertoire choisi car il est sélectionné par l'utilisateur et avant la modification de la page :Ici, j'utilise une autre variable d'environnement pour obtenir le (x86) variante de program files.
désolé, je dois avoir lu votre question trop rapidement. Vous souhaitez faire une vérification une fois que l'utilisateur a sélectionné le répertoire de refuser tout dossier qui contient "(x86)" ? Si oui, je pense que j'ai une solution et je vais mettre à jour ma réponse.
OriginalL'auteur Seki
INS fournit $PROGRAMFILES32 et $PROGRAMFILES64:
Si vous utilisez CPACK cette variable est définie comme: SET(CPACK_NSIS_INSTALL_ROOT "$PROGRAMFILES64")
OriginalL'auteur Anders