Sollte Inno Setup alte Dateien beim Update löschen?

8

Ich verwende Inno Setup, um meine Python-Anwendung zu installieren und zu aktualisieren.

Beim Update löscht das Installationsprogramm keine Py-Dateien von der vorherigen Installation, was zu zwei Problemen führt:

  • Ich benutze Plugins: Wenn ich ein Plugin in einer neuen Version lösche, ist es immer noch für Benutzer vorhanden, die ein Update durchgeführt haben.

  • Beim Deinstallieren einer aktualisierten Installation werden Dateien von den alten Installationen nicht entfernt. (Kann nicht reproduziert werden ...)

Wie kann ich Inno Setup dazu zwingen, meine Anwendung vor dem Upgrade zu deinstallieren?

Hier ist mein Skript:

%Vor%     
Hannes 25.04.2014, 07:49
quelle

1 Antwort

13

Es ist zwar möglich, die Deinstallation vor einem Upgrade durchzuführen, dies wird jedoch nicht empfohlen.

Stattdessen sollten Sie [InstallDelete] -Einträge verwenden, um die spezifischen Dateien zu entfernen, die jetzt redundant sind. Sie sollten wissen, welche Dateien das sind.

%Vor%

Es ist zwar möglich, Platzhalter zu verwenden, dies wird jedoch nicht empfohlen (insbesondere keine Platzhalter, die Dateierweiterungen ignorieren), da Benutzerdateien unbeabsichtigt gelöscht werden können, besonders wenn {app} irgendwo unerwartet ist (vielleicht wurden sie direkt in ihrem Windows Ordner installiert) .

Was Ihre zweite Behauptung betrifft: "Bei der Deinstallation einer aktualisierten Installation werden Dateien aus den alten Installationen nicht entfernt.", das ist einfach nicht wahr. Solange Sie den Ordner AppId und den Zielordner beibehalten, deinstalliert die Deinstallation alle zuvor installierten Dateien auch nach einem Update. Sie sollten die folgende Einstellung verwenden, um dies sicherzustellen:

%Vor%

Zusätzlich, vorausgesetzt, Sie haben diese Anwendung noch nicht veröffentlicht, sollten Sie stattdessen ihre DefaultDirName auf {userpf}\YourAppName ändern; Dies ist ein besserer Speicherort für benutzerspezifische Anwendungen. (Wenn Sie die App bereits freigegeben haben, können Sie diesen Wert trotzdem ändern, vorausgesetzt, Sie ändern AppId nicht, Sie müssen jedoch berücksichtigen, dass ältere Installationen auf dem älteren Pfad verbleiben.)

    
Miral 27.04.2014, 01:12
quelle

Tags und Links