Aufbau einer Custom Action

Erstellt am 17. November 2015

Nachdem wir hier kürzlich gezeigt haben, was eine Custom Action ist, kommt hier die Beschreibung wie eine solche aufgebaut sein muss. Eine Action weist mindestens Einträge sowohl in der CustomAction als auch in der Sequenztabelle Tabelle des MSI’s auf.

Je nach Custom Action Typ kommen Einträge in weiteren Tabellen hinzu.

Eintrag Custom Action Table

Ein Eintrag in der Custom Action Tabelle besteht aus den nachfolgenden Eigenschaften.

Action-Namen

Ein frei wählbarer Namen der Aktion. Er muss im MSI eindeutig sein und wird als Primärschlüssel (Identifier) in der relationalen Datenbank MSI verwendet. Der Name ist sinnvoll zu wählen.

Typ

Der Typ besteht aus sogenannten „Flag-Bits“ (Zahlenwert), welche den Typ der Aktion genau definiert und sich aus den folgenden Kategorien zusammensetzt \ zusammenrechnet. Dies wird im Feld „Type“ in der Custom Action Tabelle eingetragen.

Action Types (Basistyp)

Der Action Type definiert die Basis der Aktion. Was soll ausgeführt werden?

  • Exe-Datei in der Binary-Tabelle des MSI > Zahlenwert ‚2‘
  • DLL File, welche mit dem MSI installiert wird > Zahlenwert ’17‘
  • Vbscript, welches mit dem MSI installiert wird > Zahlenwert ’22‘
  • etc.

Für genaue Ausführung bitte die SDK konsultieren.

Return Processing Options

Die Kontrolle über Aktionen kann auf verschiedene Weise geschehen. Hier wird definiert, wie diese Kontrolle aussehen muss.

Synchrone Ausführung
Die Aktion läuft synchron zum Hauptinstallations-Thread. Windows Installer wartet auf die Custom Action, bis sie abgeschlossen wurde und fährt dann fort. Es kann nun angegeben werden, ob der Exit Code ignoriert werden soll oder ausschlaggebend ist:

  • Synchrone Ausführung. Ignoriert Exit Code und fährt fort > Zahlenwert ‚0‘
  • Synchrone Ausführung. Installation schlägt fehl wenn Exit Coder nicht 0 > Zahlenwert ’64‘

Merke: Diese Option kann nicht in Nested Installation Actions, Rollback Custom Actions oder Script Custom Actions (VB-Script etc.) gebraucht werden.

Asynchrone Ausführung
Die Aktion läuft asynchron zum Hauptinstallations-Thread. Windows Installer führt die Aktion gleichzeitig bzw. parallel zum Hauptinstallations-Thread aus. Es kann nun angegeben werden, ob am Ende des Scripts auf die Aktion bzw. den Exit-Code davon, gewartet werden soll, oder ob dies komplett abgekapselt wird. Im zweiten Falle kann die Aktion über die Laufzeit der MSI-Installation hinausreichen.

  • Asynchrone Ausführung. Wartet auf Exit Code am Ende der Sequenz > Zahlenwert ‚128‘
  • Asynchrone Ausführung. Wartet überhaupt nicht auf Abschluss > Zahlenwert ‚192‘

Hinweis: Die Option 192 kann nur mit EXE- Type Custom Actions benützt werden. Diese Option kann nicht in Nested (oder concurrent) Installation Aktionen benötigt werden.

Scheduling Options

Custom Actions können in beiden Sequenztabellen eingeplant werden (User Interface Sequenz und Execute Sequenz). Es kann bzw. muss angegeben werden, ob die Aktion jeweils in beiden Sequenzen gestartet werden muss. Die folgenden Optionen können angegeben werden:

  • Always execute
    Aktion wird in allen Sequenzentabellen ausgeführt, wo sie hinzugefügt wurde. -> Zahlenwert ‚0‘
  • Run first time
    Aktion wird nur einmal durchgeführt, wenn sie in mehr als einer Sequenztabelle aufgeführt ist. -> Zahlenwert ‚256‘
  • Run once per process
    Läuft 1x pro Prozess, wenn die Aktion in beiden Sequenztabellen (UI + Execute) vorhanden ist und diese im selben Prozess laufen. Dieser Typ verhindert, dass eine Custom Action zweimal durchgeführt wird, wenn die Aktion Properties oder Session-Daten verändert. -> Zahlenwert ‚512‘
  • Run only if UI sequence was run
    Benutze diese Aktion, wenn sie in einer der Execute Sequenzen platziert jedoch nur ausgeführt werden soll, wenn die Installation nicht silent gestartet wird.
    -> Zahlenwert ‚768‘

Diese Angabe kann nur in den Installationssequenzen „User Interface“ sowie „Execute Immediate“ verändert werden

Hidden Target Option

Diese Option kann genützt werden, um das Schreiben von Werten im Logfile vom Feld „Target“ der Custom Action zu verhindern.

  • Installer schreibt den Wert vom Feld „Target“ ins Logfile -> Zahlenwert ‚0‘
  • Installer schreibt den Wert vom Feld „Target“ nicht ins Logfile -> Zahlenwert ‚8192‘

Hinweis: Die Property, die nicht geschrieben werden darf, muss in MsiHiddenProperties aufgelistet sein.

Erstellt am 17. November 2015

Vielleicht auch interessant…

MSIX Editor in PACE Suite 6.0

MSIX Editor in PACE Suite 6.0

Die PACE Suite bietet seit geraumer Weile die Möglichkeit MSIX-Pakete zu erstellen. Mit SuitePACE- Suite 6.0 wurde die Erstellung von MSIX-Paketen jedoch verbessert, indem das Package Support Framework (PSF) integriert wurde

mehr lesen

This Area is Widget-Ready

You can place here any widget you want!

You can also display any layout saved in Divi Library.

Let’s try with contact form: