2017-08-07 4 views
7

latenten (mit impoersonate = no) dem Wert auf die Wix CA zu senden, ich bin mit Set-Eigenschaft und WertWix Benutzerdefinierte Aktion Sollwert von CA auf wix

und das Sammeln der Daten in CA-Sitzung. CustomActionData ["Schlüssel"];

Gibt es eine Möglichkeit die Daten an die WIX von CA zu senden zurück

<Property Id="RESTART" Secure="yes" Value="false" /> 

In unmittelbaren i wurde unter Verwendung

session["RESTART"] = "true" 

... wie dies zu erreichen latenten CA

+0

Dies scheint ziemlich gründlich zu mir: https://stackoverflow.com/questions/11233267/how-to-pass-customactiondata-to-a-customaction-using-wix – PhilDW

+0

meine Frage ist das Gegenteil davon, ich will von CA zu WIX XML – asvignesh

+0

Haben Sie versucht, den Wert in die Registrierung zu schreiben und von dort zurückzulesen? –

Antwort

4

Sie können die Sitzung nicht von einer zurückgestellten benutzerdefinierten Aktion ändern. An diesem Punkt führt MSI sein Skript aus, und es gibt keine Sitzung, von der zu sprechen ist. Sie können also keine Eigenschaft festlegen. Sie benötigen einen anderen Mechanismus, um den Status zu kommunizieren. Die native WiX-Bibliothek enthält die Funktionen WcaDeferredActionRequiresReboot, um anzugeben, dass ein Neustart erforderlich ist, und WcaDidDeferredActionRequireReboot für eine sofortige benutzerdefinierte Aktion, die nach InstallFinalize geplant ist, um den Neustartstatus zu erkennen.

1

Sie können eine sofortige sofortige Aktion InstallFinalize hinzufügen, die nach allen verzögerten Aktionen positioniert ist, und Sie können den (RESTART-) Befehl des Pakets (XML) auf den gewünschten Wert zurücksetzen, da die Sitzung verfügbar sein wird le wieder.

+0

Der Wert Neustart ist wahr oder nicht kann nur von dieser bestimmten Methode behandelt werden, kann den Wert nicht übergeben – asvignesh

+1

Sie können den Wert für CustomActionData in der verzögerten Aktion festlegen. Dann lesen Sie diesen Wert bei InstallFinalize sofortige benutzerdefinierte Aktion aus dem gleichen CustomActionData und schreiben Sie es in Sitzung ["RESTART"]. –

+1

Nein, direkte Modus benutzerdefinierte Aktionen nach InstallFinalize sollten nie verwendet werden. Sie sollten das System natürlich nicht ändern - das sollte keine benutzerdefinierte Aktion im Sofortmodus sein, und sie werden komplett übersprungen, wenn das Setup im Hintergrund ausgeführt wird (keine GUI). Darüber hinaus können sie Berechtigungsprobleme auslösen, wenn das Setup auf einem erhöhten Wert ausgeführt wird (ein regulärer Benutzer führt das Setup aus). Zumindest, als ich das vor Jahren versuchte - ich habe das Konstrukt seither nie benutzt. Ich denke, es gab auch andere Probleme, an die ich mich im Moment nicht erinnere. Vielleicht versuche ich, wie oben erwähnt, in die Registry zu schreiben und lese dann zurück. –

Verwandte Themen