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

Custom Action probleme in Repair Modus


2 replies to this topic

Tschaen

Tschaen
  • Full Members
  • 27 posts

Posted 19 March 2013 - 14:40

Hallo

Ich habe ein Problem im Repair Modus.
Ich habe zwei Custom Actions mit folgenden Bedingungen:

CA 1: (NOT Installed OR MaintenancMode="Modify" OR NOT REMOVE) AND SELECTION = 1 AND &Server = 3
CA 2: (NOT Installed OR MaintenanceMode="Modify" OR NOT REMOVE)

CA 1 läuft nur bei der Installation und nicht im Repair Modus und CA 2 läuft bei der Installtion und Repair Modus.

Wenn ich das Property SELECTION in einem InstallScript mit einer MessageBox ausgebe, bekomme ich während der Installation einen Wert und bei Repair Mode nur blank.
Der FeatureState von Server ist bei Installation auf 2 und bei Repair Mode auf 3.

Das Property SELECTION müsste den gleichen Wert haben, den es bei der Installation hat.
Wie kriegt man das hin?

Vielen Dank



Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 20 March 2013 - 11:22

Mir ist nicht ganz klar, welches Verhalten du haben möchtest bzw. wo das Problem ist. Aber mal ein paar Anmerkungen:

Das fehlende e bei MaintenanceMode in CA 1 ist nur ein Tippfehler hier im Forum, nehme ich an.

Ich weiß nicht, wie und wo du MaintenanceMode setzt. Wenn du es von _IsMaintenance ableitest, dann ist nur richtig gesetzt, wenn der Anwender über den MaintenaceType Dialog geht. Wenn aber in der Systemsteuerung direkt auf "Reparieren" geklickt wird, oder wenn die Reparatur automatisch von Windows initiiert wird, dann kannst du es nicht verwenden.

Der Teil der Bedingung in der Klammer ist ja eigentlich immer True außer bei der Deinstallation oder wenn ein Feature entfernt wird (aber nicht über das UI, denn dann ist ja Modify gesetzt, sondern über die Kommandozeile). Ist das wirklich was du willst?

Properties (wie SELECTION) werden nicht gespeichert. Wenn das Setup erneut läuft, musst du es neu setzen. Z.B. kannst du bei der Erstinstallation den Wert in die Registry schreiben und später per System Search wieder auslesen.

&Server ist die Feature-Aktion. Bei der Installation würde ich hier den Wert 3 erwarten (lokal installieren), später -1 (wenn sich an der Auswahl nichts ändert). Im Maintenance Mode hätte der Feature-Zustand (!Server) den Wert 3. Welches Verhalten möchtest du genau erreichen?





Tschaen

Tschaen
  • Full Members
  • 27 posts

Posted 20 March 2013 - 15:05

Vielen Dank für die Antwort, das bringt mich schon ein bisschen weiter.

Nein leider ist es nicht der Tippfehler..

Ich möchte das die Reparatur immer funktioniert, sei es über UI, Konsole, Systemsteuerung usw.
Muss ich einfach MaintenanceMode mit _IsMaintenance ersetzen in den Conditions, damit es immer funktioniert? Oder muss ich jeweils für UI-, Konsolen- oder Systemsteuerung - Reparatur eine eigene Bedingung schreiben, die den Reparaturmodus auffängt ?

Das Property SELECTION werde ich in die Registry schreiben. Muss ich das selber machen oder bietet Installshield dazu eine Möglichkeit?

Die Feature-Condition wird sehr wahrscheinlich nicht das Problem sein.

Edit: Konnte meine Problem mit Repair Mode beheben. Unteranderem mit hilfe dieses Artikels Saving MSI Property

Edited by Tschaen, 20 March 2013 - 16:13.