Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

Installer-Update und Neustart


5 replies to this topic

AlfT

AlfT
  • Full Members
  • 5 posts

Posted 21 November 2006 - 18:40

Hallo zusammen,
folgendes Problem:
Ich habe ein normales Basic-MSI Projekt. Dort habe ich angegeben, dass ich den Installer in der Version 2.0 oder 3.1 benötige, je nach Betriebssystemversion. Eine Verzögerung des Neustarts bis nach Abschluss der Installation habe ich ABgeschaltet. So weit so gut.
Folgendes passiert:
InstallShield prüft die Installer-Version und führt das Update durch. Anschließend erzwingt InstallShield auch den Neustart. Mein Setup wird beim Neustart auch wieder gestartet, ABER zu einem Zeitpunkt in der Boot-Sequenz, wo offensichtlich die Board-Treiber noch nicht geladen sind. Jedenfalls läuft mein Setup nach dem Rechnerneustart in einer Geschwindigkeit ab, als würde man die Installation von einer Diskette ausführen - was bei 500+ MB nicht gerade lustig ist. Der Boot-Vorgang wird auch erst nach Abschluss der Installation vollendet.
Was muss ich tun, dass mein Setup erst nach der kompletten Boot-Sequenz wieder gestartet wird? - Ich habe keine Einstellungen gefunden.

Für Anregungen und schnelle Hilfe wäre ich sehr dankbar.

AlfT

AlfT

AlfT
  • Full Members
  • 5 posts

Posted 23 November 2006 - 15:28

Keiner da, der das Problem kennt und mir helfen kann...? Die Sache hat eine gewisse Dringlichkeit.

AlfT

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 23 November 2006 - 18:59

Nein, sorry hab ich noch nie gehört. Kann mir eigentlich auch nicht vorstellen, dass die Instalaltion vor den Treibern geladen wird. Könnte die ursache vielleicht eine andere sein?
Schau mal (bevor du bootest) in den RunOnce Registry-Eintrag. ich denke da wird dein Setup drinstehen. Bei MSDN gibts glaube ich irgendwo eine Doku in welcher Reihenfolge die Sache geladen werden (runOnce, Run, RunServices, Gerätetreiber, Dienste)

ali

ali
  • Full Members
  • 1,008 posts

Posted 24 November 2006 - 10:28

geb mal unter Start -> RUN den Befehl "msconfig" ein. Damit kannst du ein bischen spielen, gegebenenfalls hilft dir auch der diagnostic weiter.


AlfT

AlfT
  • Full Members
  • 5 posts

Posted 24 November 2006 - 18:13

Zuerst mal danke für die Antworten.
Ja, unter RunOnce steht der Eintrag natürlich drin, den schreibt InstallShield ordentlich rein - naja fast ordentlich, denn die Variable "AFTERREBOOT" wird nicht wie versprochen auf 1 gesetzt. Wenn ich die wenigstens hätte, könnte ich sie ja abfragen und entsprechend reagieren... Wenn man sie manuell in den Schlüssel hinter /v... einfügt, bevor man den Neustart zulässt, kann man sie auch abfragen und mein Setup kann dann auf die Situation reagieren. Nun gut, war nur eine Bemerkung am Rande.
Jedenfalls ist's so, dass ich ja keinen Einfluss drauf habe, was InstallShield da in den RunOnce Key einträgt, ich komme während des Setup da ja auch nicht ran, weil die Prüfung der Installerversion und der Neustart passieren, bevor mein Setup überhaupt ins Spiel kommt.
Warum das Setup vor dem Ende der Boot-Sequenz ausgeführt wird - keine Ahnung. Scheinbar gibt es aber einen Parameter /k (Auszug aus RunOnce: ISSetup=Setup.exe /k ...) der dazu führt, dass die Installation verzögert wird, bis der Bootvorgang komplett ist. Nur leider komme ich da ja nicht ran und eine Doku zu diesem Parameter habe ich auch nirgens gefunden - ist bisher also nur eine Vermutung.
Zudem scheint das Neustartverhalten bzw. das was InstallShield in den Key einträgt auch was damit zu tun zu haben, wie das Setup erstellt wird. Erstelle ich eine einzige exe, wird dieser ominöse /k Parameter angehängt und das Setup wartet, bis Windows fertig ist. Erstelle ich mein Setup so, dass alle Dateien unkomprimiert vorliegen (wie bei mir), bekomme ich diesen Parameter nicht...
Bevor nun jemand sagt, dann packe es doch ein - nö, denn dann muss erst das 500+MB msi aus der exe extrahiert werden und dann aus der msi nochmal 500+MB an Dateien - und das dauert...
Soweit zur Situation. Vielleicht hat ja doch noch jemand einen Tipp.

AlfT

AlfT

AlfT
  • Full Members
  • 5 posts

Posted 25 November 2006 - 14:15

Update:
Also jetzt habe ich etwas Licht ins Dunkel bringen können. Das der Bootvorgang nicht weitergeht, während mein Setup neu gestartet wird liegt im Wesen von HKLM/RunOnce. Alle Einträge da drinnen werden synchron abgearbeitet - alles wartet also, bis ein Task fertig ist. Einträge in HKCU/RunOnce hingegen werden asynchron abgearbeitet und auch später ausgeführt.
Warum InstallShield den Eintrag für das erneute Starten des Setup nach einem Reboot nun ausgerechnet nach HKLM/RunOnce setzt - keine Ahnung. Die Wahrscheinlichkeit, dass man sich nach dem Reboot nicht wieder als derselbe Nutzer anmeldet wird wohl ziemlich gering sein...
Und warum bei Ausführung von HKLM/RunOnce noch nicht alle Treiber geladen sind, wird man wohl auch nur in Redmond wissen.
Nun ja, jedenfalls habe ich den ganzen Kram jetzt selbst gemacht. Also Versionsabfrage von Installer und Betriebssystem, Installation vom Installer, Reboot und Eintrag meines Setup nach HKCU/RunOnce stecken jetzt alle in einem VBScript. Die volle Kontrolle über alles zu haben, ist halt doch immer noch das Beste...

Dennoch Dank an alle, die geantwortet haben.
AlfT