Je tente de désinstaller silencieusement mon programme d'installation en exécutant une seconde fois l'installation. L'utilisation de SetSilent sous la fonction un.onInit fonctionne lorsque vous cliquez manuellement sur l'exécutable, mais ne fonctionne pas lorsque vous l'exécutez en mode silencieux via la ligne de commande. Je crois que c'est faire à plusieurs threads en cours d'exécution (le programme d'installation à côté de l'exécutable de désinstallation) afin de corriger cela, je voulais utiliser le saut IfSilent et exécuter une commande en ligne de commande si le programme d'installation s'exécute silencieusement. Voici ce que j'ai.Exécution de la commande de ligne de commande NSIS à l'aide de IfSIlent jump
IfSilent 0 +2
Exec '"$INSTDIR\uninstall.exe" /S'
J'ai imbriqué cela dans la section principale avec les fichiers inclus. J'ai vérifié et il ne semble pas que la commande ci-dessus est en cours d'exécution. La commande exec
ci-dessus est-elle utilisée correctement? MISE À JOUR: J'ai ajouté une partie du code de l'installateur que j'essaie de créer. Ce que je veux faire est que je veux vérifier le système pour voir si l'application existe quelque part sur la machine cible. Si c'est le cas, je veux désinstaller la version précédente.
#Installer Functions
Function .onInit
ReadRegStr $R0 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" "UninstallString"
StrCmp $R0 "" done
;Run the uninstaller
ClearErrors
ExecWait '"$R0" /S _?=$INSTDIR'
IfErrors no_remove_uninstaller done
no_remove_uninstaller:
done:
InitPluginsDir
FunctionEnd
Maintenant, voici mon problème. Cela fonctionne si je l'installe normalement. Cependant lorsque j'essaye d'installer ceci silencieusement, le programme de désinstallation ne s'exécute pas.
Veuillez noter que j'utilise $ R0 parce que je veux gérer le scénario dans lequel l'utilisateur peut sélectionner un autre répertoire que le répertoire d'installation. J'ai aussi essayé d'utiliser INSTDIR mais il ne fonctionne toujours pas
Je ne comprends pas bien ce que vous essayez de faire, s'il vous plaît préciser. – Anders
J'essaie de désinstaller la version précédente de mon application avant d'effectuer mon installation. – domo1