Löschen einer Datei NACH der installation in InnoSetup
Muss ich einige Dateien gelöscht, nachdem die installation abgeschlossen ist.
War ich mit der [AUSFÜHREN] - Abschnitt aufrufen, CMD die Dateien zu löschen, aber ich wollte Sie verbessern die Löschungen durch Verwendung von InnoSetup-code und nicht die Batch habe ich dann gesehen das [InstallDelete] Abschnitt, aber diese Dateien löschen, BEVOR Sie die [RUN] - Bereich, so... da ist etwas, was ich tun kann, um die Dateien zu löschen nach [RUN] Abschnitt?
Hier ist mein Skript:
#define InstallerName "VirtualBox-4.2.16-r86992-MultiArch_amd64.msi"
#define ExtensionName "Oracle_VM_VirtualBox_Extension_Pack-4.2.16-86992.vbox-extpack"
[Setup]
AppName=VirtualBox
blah blah blah...
blah blah blah...
[Files]
Source: {tmp}\*; DestDir: {tmp}; Flags: deleteafterinstall recursesubdirs createallsubdirs ignoreversion
[Run]
Filename: {tmp}\{#InstallerName}; Parameters: "/passive /norestart ADDLOCAL=VBoxApplication INSTALLDIR=""{app}"""; StatusMsg: Instalando VirtualBox...; Flags: shellexec RunHidden WaitUntilTerminated
Filename: {tmp}\xml.exe; Parameters: "ed --inplace -N N=""http://www.innotek.de/VirtualBox-settings"" --update ""//N:ExtraDataItem[@name='GUI/UpdateDate']/@value"" --value never ""{%userprofile}\.virtualbox\virtualbox.xml"""; StatusMsg: Instalando VirtualBox...; Flags: RunHidden WaitUntilTerminated
Filename: {app}\VBoxManage.exe; Parameters: "extpack install --replace ""{tmp}\{#ExtensionName}"""; StatusMsg: Instalando Extension Pack...; Flags: RunHidden WaitUntilTerminated
Filename: {app}\virtualbox.exe; Description: {cm:LaunchProgram,VirtualBox}; Flags: shellexec postinstall unchecked skipifsilent nowait
[InstallDelete]
Name: {commondesktop}\Oracle VM VirtualBox.lnk; Type: files
Name: {commonstartmenu}\Programs\Oracle VM VirtualBox; Type: filesandordirs
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie versuchen, um temporäre Dateien zu löschen (zB. gebraucht von einer subinstall):
Alles, was Sie installieren, um
{tmp}
automatisch gelöscht werden, am Ende der Installation.Wenn Sie nicht' installieren zu
{tmp}
aus irgendeinem Grund, dann können Sie diedeleteafterinstall
- Flagge auf der[Files]
Eintrag.Wenn Sie versuchen, Dateien zu löschen, die erstellt, dass subinstall, dann sollten Sie sich an den Hersteller oder überprüfen Sie Ihre Unterlagen und sehen, ob es eine Befehl Linie parameter, die Sie übergeben können, um zu unterdrücken, installation, dass der Eintrag in den ersten Platz. Es gibt in der Regel sollte für optionale Dinge wie desktop-icons.
Können Sie löschen Sie Ihre Dateien in das post-install Schritt der
CurStepChanged
event-handlerdel
Befehl aus[Run]
Abschnitt, aber in diesem Fall haben Sie fast keine Steuern, ob das Kommando erfolgreich war oder nicht. Würd ich persönlich bevorzuge diese Art der Verwendung[Code]
Abschnitt.CurStepChanged
Lösung und es funktioniert perfekt. +1Schließlich, was ich gemacht habe ist diese.
Aufbauen und ich versuchen, löschen Sie die original-MSI-Paket-Dateien, wenn Sie vorhanden ist, in der [InstallDelete] Abschnitt aber, dass doesnt ist, löschen Sie den Ordner, der bei allen so danach extrahiere ich eine dummy-Datei und den Ordner in den gleichen Positionen mit der "deleteafterinstall" - flag zu löschen.
Wenn Sie denken, dass dies verbessert werden kann, dann Sag mir doch bitte, wie es zu tun, ich wirklich nicht wollen, um externen code verwenden, denn ich brauche eine "generische" Weise, es zu tun für über 200 Installateure, schreiben code für die Menge von Installateuren viel Zeit in Anspruch nehmen.
[InstallDelete]
Abschnitt ist der erste Schritt der installation ist die[Run]
Abschnitt erfolgt viel später. Also, wenn Sie gehen, um etwas zu löschen, was installiert ist, aus der[Run]
Abschnitt, machst du es falsch. Wenn Sie nicht möchten, verwenden Sie einen code in die[Code]
Abschnitt, z.B.del
Befehl und führen Sie es aus der[Run]
Abschnitt irgendwo nach der installation Eintrag. Aber, als Miral schlägt vor, das beste ist, zu schauen, ob es einen Weg gibt, um zu verhindern, dass der installer selbst erstellen dieser Verknüpfungen.[Run]
Abschnitt und, dass etwas erstellt die Verknüpfungen auf desktop und Startmenü. Und dass Sie möchten, löschen Sie die Verknüpfungen nach der installation, dass etwas getan wird.deleteafterinstall
- flag angegeben. Das ist wirklich völliger Weg... Diese Lösung führt zu mehr Arbeit, als wenn Sie verwendet wurden, der code-Abschnitt hat. Gut könnte auch sein, z.B. derAfterInstall
parameter, und führen Sie eine Reinigung Funktion von dort aus.[InstallDelete]
Abschnittthe first step
von der installation[Run]
Abschnitt eines der neuesten. Also, wenn Sie etwas installieren, von der[Run]
Abschnitt können Sie nicht erwarten, dass Sie sauber etwas aus, dass[Run]
im Abschnitt installation aus dem[InstallDelete]
Abschnitt, weil dieser Abschnitt bereits ausgeführt wurde.[InstallDelete]
sollte eher benannt werdenPreinstallDelete
.AfterInstall
parameter, richtig ? [nicht Stimmen, obwohl unten]