Update einer Installation

Fragen zum AKInstallerMSI
Antworten
Kukulkan
Beiträge: 120
Registriert: 13.02.2007, 16:05

Update einer Installation

Beitrag von Kukulkan »

Hallo,

Vom 'alten' AKInstaller kommend vermisse ich ein wichtiges Feature: Ein neueres Setup konnte immer Problemlos über ein bereits installiertes 'drüberinstalliert' werden. Egal was ich im neuen AKInstallerMSI unter PRODUKT/UPDATES einstelle, jedesmal bekomme ich es mit einem "Eine weitere Version dieses Produktes ist bereits installiert..." zu tun und soll zuerst die alte Version deinstallieren. Was mache ich falsch?

Ich habe zum testen alle Einträge unter "Update-Einstellungen" entfernt. Keine Chance :( Die richtigen Sicherheitseinstellungen habe ich mit der Option "Niemals überschreiben" bei den einzelnen Dateien eigentlich gelöst.

Können Sie mir helfen und mitteilen was alles berücksichtigt sein muss?
Andreas Kapust
Administrator
Beiträge: 1085
Registriert: 29.02.2004, 15:51
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Andreas Kapust »

Hallo!

Das ist vom MSI so vorgesehen.

Es gibt drei Updatearten (Small / Minor / Major) (siehe Anleitung)

Bei allen Nicht-Majors kommt die besagte Meldung. Diese müssen bei Updates mit dem Parameter REINSTALL=ALL REINSTALLMODE=vomus installiert werden. Was der Bootstrapper macht (Update-Parameter).

Dies ist der Grund warum viele Major-Updates ausliefern, die auch als Minor durchgehen würden oder per Bootstrapper ausführen. Wer möchte seinem Kunden schon erzählen, er müsse die Installation mittels XYZ starten :wink: .

Nebenbei: Die Einstellungen unter Upgrade sollten so belassen werden.
Mit freundlichen Grüßen,
AKApplications, Andreas Kapust
Kukulkan
Beiträge: 120
Registriert: 13.02.2007, 16:05

Beitrag von Kukulkan »

Hallo nochmal,

Ich bekomme das mit dem 'drüberinstallieren' ohne vorheriges deinstallieren einfach nicht hin :(

Wenn ich den Produktcode ändere, dann kann ich das Setup problemlos 'drüberinstallieren' ohne vorher deinstallieren zu müssen. Man muss nur darauf achten, den selben Pfad zu verwenden (am besten den Default-Pfad). Problem ist dann aber, dass ich für jedes Setup einen Deinstallations-Eintrag in der Systemverwaltung->Software habe. Das soll natürlich nicht sein denn dann hat man irgendwann 5 Einträge der selben Software...

Bitte - können Sie mir ein ganz einfaches Beispielprojekt zukommen lassen welches das so macht, dass man es auf dem Zielrechner einfach drüberinstallieren kann? Ohne, dass es doppelte Deinstallations-Einträge oder eine Aufforderung zum vorher deinstallieren gibt?
Das Setup soll sowohl auf neuen Systemen als auch auf Systemen die bereits eine Version davon haben funktionieren. Im Prinzip so wie beim normalen 'alten' AKInstaller...

Mailadresse: info (at) inspirant (.) de

Noch eine Frage: In welcher Sequenz unter "Benutzerdefinierte Aktionen" ruft man am besten ein VB6 Runtime Setup auf, wenn es vor dem kopieren der eigenen Dateien aufgerufen werden soll? Sequenz 1500 (Nach Install Initialize)?

Vielen Dank!

PS. Wenn das klappt wünsche ich mir nur noch, dass ich die Versionsnummer aus einer eingebundenen Datei auslesen kann (Hauptprogramm). Dann spare ich mir immer das manuelle Nachtragen der Versionsnummer im AKInstallerMSI.
Kukulkan
Beiträge: 120
Registriert: 13.02.2007, 16:05

Beitrag von Kukulkan »

Noch eine Frage: In welcher Sequenz unter "Benutzerdefinierte Aktionen" ruft man am besten ein VB6 Runtime Setup auf, wenn es vor dem kopieren der eigenen Dateien aufgerufen werden soll? Sequenz 1500 (Nach Install Initialize)?
Ups, falsche Frage. Das mache ich schon im Bootstrapper. Ich wollte wissen, in welcher Sequenz man einen End-Dialog (ein Executable) am besten Aufruft das am Ende der Installation (noch vor dem allerletzten Setup-Dialog) noch ein paar Einstellungen definieren soll?

Kukulkan
Andreas Kapust
Administrator
Beiträge: 1085
Registriert: 29.02.2004, 15:51
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Andreas Kapust »

Hallo!

Wenn die Versionsnummer sich nicht ändert aber der Productcode (Pc), dann wird die Software als neue Instanz installiert (mehrere Einträge unter Software).

Durch die Default-Einstellung unter Produkt -> Update wird eine alte Installation nach dem Aufspielen der neuen Daten deinstalliert (mit anderen Worten, es wird das entfernt was nicht in der neuen Installation steckte).

Dazu muss sich der Pc nicht ändern, sondern nur die ProductVersion (Pv) und das neue Paket muss mit dem Schaltern REINSTALL=ALL REINSTALLMODE=vomus installiert werden (darum wenn möglich den Bootstapper nutzen, der erkennt das und führt es in dem Fall automatisch aus). Soll es ein reines MSI sein, muss es entweder mit dem Schaltern (siehe oben) installiert werden oder Pc + Pv müssen geändert werden (im letzteren Fall wird jedes Update zu einem Major-Update).

Ein Default-Pfad ist nicht nötig (Produkt -> Update -> Installationspfad vorheriger Version wiederherstellen).

Zu Ups, falsche Frage:
Dieses würde ich vor der Installation tun oder aber den ExitDlg abändern.
Mit freundlichen Grüßen,
AKApplications, Andreas Kapust
Kukulkan
Beiträge: 120
Registriert: 13.02.2007, 16:05

Beitrag von Kukulkan »

Hallo,
Dieses würde ich vor der Installation tun oder aber den ExitDlg abändern.
Das geht leider nicht. Es ist eine Art Assistent und die Installation muss so gut wie fertig sein (also auch Registry und Komponenten etc.). Die Funktionalität kann ich leider nicht in den Setup-Dialog einbauen, da der Assistent später auch einzeln gestartet werden kann.

Im Moment rufe ich die Datei in InstallFinalize (nach 6600) auf. Ist das gut so? Es scheint zu funktionieren, aber die vielen Sequenzen sind verwirrend. Bei der Auswahl wäre es schön wenn man die Sequenzen auch nach der Sequenznummer sortieren könnte. Dann hätte man einen besseren Überblick über die Reihenfolge...

Kukulkan
Andreas Kapust
Administrator
Beiträge: 1085
Registriert: 29.02.2004, 15:51
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Andreas Kapust »

Guten Tag!

Ok, jetzt weiß ich worauf es hinauslaufen soll. Es ist also ein GUI-Programm, welches während des Installierens aufgerufen werden soll (also in der Execute-Sequenz), richtig?

Davon würde ich dringen abraten! Dieses würde im Systemkontext ausgeführt werden. Benutzer Abfragen sollten in nur in der UI-Sequenz geschehen und die Daten dann an die Execute-Sequenz übergeben werden.

Dazu bedraf es min. zwei CAs, eine in der UI und eine in der Execute. Normalerweise würde hier noch eine Rollback-Aktion, sowie eine Deinstall-Aktion hinzukommen. Hier sollten Sie sich die Installer SDKs zum Thema ansehen. Ansonsten sollten Sie den Assistenten auf der ExitDlg automatscih beim Klick auf Fertig stellen aufrufen. Dies geschieht dann wieder im Benutzerkontext und der UI-Sequenz.
Mit freundlichen Grüßen,
AKApplications, Andreas Kapust
Kukulkan
Beiträge: 120
Registriert: 13.02.2007, 16:05

Beitrag von Kukulkan »

Hallo,

Ich habe es jetzt mit dem Finish-Button im Dialog verknüpft. Das geht gut so.

Ich habe mit der neuen Version leider ein Problem:

Immer wenn ich "Ressourcen" den BigPicture und den SmallPicture Eintrag mit neuen Bildern belege, erhalte ich beim erstellen des Setups die Meldung:

Seite1-Grafik nicht gefunden! Es gibt keinen BigPicture-Eintrag.

Ich habe alle Dialoge angeschaut, aber finde keinen Hinweis auf das Problem. Alle BigPicture-Einträge scheinen auf die neue Ressource zu verweisen. Wie finde ich den Auslöser? Können Sie helfen?

Kukulkan
Andreas Kapust
Administrator
Beiträge: 1085
Registriert: 29.02.2004, 15:51
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Andreas Kapust »

Hallo!

BigPicture und SmallPicture sollten nicht entfernt, sondern diesen Einträgen sollten nur eigene Bilder zugeordnet werden.

Seite1-Grafik nicht gefunden! kommt vom Bootstrapper -> Titelgrafik.
Mit freundlichen Grüßen,
AKApplications, Andreas Kapust
Antworten