J'utilise Inno Setup pour créer un programme d'installation.
Je veux que le programme d'installation désinstalle automatiquement la version installée précédemment, au lieu de l'écraser. Comment puis-je faire cela ?
J'utilise Inno Setup pour créer un programme d'installation.
Je veux que le programme d'installation désinstalle automatiquement la version installée précédemment, au lieu de l'écraser. Comment puis-je faire cela ?
N'utilisez pas la section [Run], mais la section [UninstallRun]. En effet, les programmes sous [Run] sont exécutés. après l'installation, ce qui entraîne la désinstallation de votre programme immédiatement après l'installation. Au lieu de cela, la section [UninstallRun] est évaluée. avant l'installation.
Suivez ce lien : http://news.jrsoftware.org/news/innosetup/msg55323.html
Dans la fonction InitializeSetup(), vous pouvez appeler "MSIEXEC /x {votre ID de programme}" après l'invite de l'utilisateur pour désinstaller l'ancienne version.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
2 votes
Notez que comme mlaan a déclaré il n'est normalement pas nécessaire de le faire avec une installation basée sur Inno, à moins que vous ne mettiez à niveau une version non Inno.
7 votes
Deanna : cela dépend des cas. Pour certains programmes avec des systèmes de plugins automatiques, qui lisent tout ce qui se trouve dans un dossier, la suppression des anciens fichiers est une nécessité absolue lors de l'installation d'une nouvelle version, et le simple fait d'exécuter la désinstallation est généralement le moyen le plus propre de le faire.
1 votes
@Nyerguds Mais InnoSetup s'occupe de cela en ayant une option pour supprimer certains fichiers/dossiers avant que l'installation ne commence (drapeau "InstallDelete") donc vous n'auriez pas besoin de désinstaller l'ancienne version d'abord.
3 votes
NickG : Encore une fois, cela dépend du cas. Ce serait la situation idéale, oui, et de loin la préférée, mais en réalité, il y a beaucoup de situations non idéales. Les fichiers dll enregistrés, sur de nombreuses versions cibles possibles, en sont un exemple.
0 votes
Voir aussi Détecter et désinstaller l'ancienne version de l'application dans Inno Setup en utilisant son numéro de version stocké dans le registre. .