CustomActionData in verzögertem Script

Fragen zum AKInstallerMSI
Antworten
kreuzberger
Beiträge: 29
Registriert: 06.10.2010, 09:52

CustomActionData in verzögertem Script

Beitrag von kreuzberger »

Ich habe in einer Installation bei der Deinstallation ein script ausgeführt, welches sofort ausgeführt wurde. Allerdings muss es unter Windows 7 definitiv im Systemkontext ausgeführt werden, weshalb ich es nun verzögert ausführen muss.
In dem Script greife ich auf Session.Property("INSTALLDIR") zu. Dies geht nun nicht mehr, da die Variable leer ist.
Nun versuche ich verzweifelt, irgendwie diese Information in mein Script zu kriegen. Lt den Anleitungen im Netz und im Forum habe ich dazu:

- Eine CA angelegt, die die Eigenschaft "CustomActionData" auf den Wert "[INSTALLDIR]" setzt.
- Diese CA auf Position 3601 in der Install Execute Sequenz geschoben (Nach RemoveFolders)
- Die CA die ich ausfuehren will auf 3602 gesetzt und dort versucht über Session.Property("CustomActionData") den Wert zu erhalten.

Dies funktioniert nicht, der Wert ist leer.

Im uninstall log sehe ich zwar, dass die CA auf 3602 ausgeführt wird, aber nicht direkt vorher die CA auf 3601, die wird deutlich vorher im uninstall ausgeführt. Der Wert wird dort aber richtig gesetzt.

Frage: Wie kriege ich das INSTALLDIR in die CustomAction ODER wie kriege ich das script sofort im Systemkontext ausgeführt?
Andreas Kapust
Administrator
Beiträge: 1085
Registriert: 29.02.2004, 15:51
Wohnort: Hamburg
Kontaktdaten:

Re: CustomActionData in verzögertem Script

Beitrag von Andreas Kapust »

Edit: Text gelöscht, Lösung siehe unten.
Mit freundlichen Grüßen,
AKApplications, Andreas Kapust
kreuzberger
Beiträge: 29
Registriert: 06.10.2010, 09:52

Re: CustomActionData in verzögertem Script

Beitrag von kreuzberger »

Die Info hab ich umgesetzt und bin soweit erfolgreich, als dass die Execute CA auch aufgerufen wird.

Nur ist der Wert von Session.Property("CustomActionData") immer noch leer.

Im Script fuer Process hab ich die Aufrufe:

Session.Property("CustomActionData") = Session.Property("INSTALLDIR")
Session.DoAction("Process")
eingefügt.

Im script Execute lese ich über

Dim strPathName = Session.Property("CustomActionData") den wert aus, aber er bleibt leer.

Rechtschreibfehler, Grossklein Schreibung hab ich ueberprueft, das passt alles
Im Uninstall log sehe ich auch den Aufruf:
Executing op: ActionStart(Name=removeInstallDir,,)

d.h es wird nix uebergeben.
Andreas Kapust
Administrator
Beiträge: 1085
Registriert: 29.02.2004, 15:51
Wohnort: Hamburg
Kontaktdaten:

Re: CustomActionData in verzögertem Script

Beitrag von Andreas Kapust »

Guten Tag!
Sorry, mein Fehler.
In VBSkript läuft es etwas anders als in C.
Der Ablauf ist folgender:
Definieren Sie zwei CAs.
Eine E01_Process "Eigenschaft setzen" (Typ51) :
Eigenschaft = E01_Execute
Wert= [INSTALLDIR]
InstallExecuteSeqence z. B. Pos 6104

Und eine E01_Execute als VBSkript in Ressource und Verzögert, Systemkontext (wenn nötig)
InstallExecuteSeqence z. B. Pos 6105

Beispiel anbei.
Dateianhänge
CA_VBScript.zip
(30.45 KiB) 515-mal heruntergeladen
Mit freundlichen Grüßen,
AKApplications, Andreas Kapust
kreuzberger
Beiträge: 29
Registriert: 06.10.2010, 09:52

Re: CustomActionData in verzögertem Script

Beitrag von kreuzberger »

Vielen Dank, die Loesung funktioniert nun so wie beschrieben
Antworten