2010-05-12 3 views
2

J'utilise NSIS pour créer mes installeurs/désinstalleurs, et le programme de désinstallation semble avoir un comportement étrange.NSIS Uninstaller Répertoire de travail

Je ne place pas le programme d'installation dans $ INSTDIR, il se trouve dans $ INSTDIR/subdir/uninstall.exe (il s'agit d'un programme d'installation addon pour une application hôte). Lorsque j'exécute le programme d'installation, il pense que la racine de l'installation de l'application est $ INSTDIR/subdir au lieu de $ INSTDIR. Il ne peut alors pas trouver tous les fichiers dans subdir/* car il est déjà dans le sous-répertoire.

Si je déplace l'exécutable, il semble simplement accepter le répertoire courant comme étant la racine d'installation de l'application. Je peux le déplacer vers $ INSTDIR et tout va bien.

Merci.

Répondre

4

$ INSTDIR dans le programme de désinstallation est juste le répertoire du programme de désinstallation est en (pas le même que le répertoire courant nécessairement)

Si vous pouvez simplement mettre le programme de désinstallation à la racine de l'installation, qui est la meilleure option, sinon, vous devez faire quelque chose de moche comme strcpy $instdir "$instdir\.." ou utiliser un define dans chaque appel Delete/RMDir. Sinon, si vous enregistrez le répertoire d'installation quelque part dans le registre pendant l'installation, vous pouvez le lire dans le programme de désinstallation.

Questions connexes