2017-08-07 7 views
7

En différé (avec impoersonate = non) pour envoyer la valeur à Wix à CA, j'utilise ensemble de propriétés et la valeurWix valeur définie d'action personnalisée de CA à Wix

et la collecte des données CA en utilisant session. CustomActionData ["clé"];

Est-il possible de renvoyer les données à Wix de CA

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

, j'ai été immédiatement utilisé,

session["RESTART"] = "true" 

... comment atteindre cet objectif en CA

différé
+0

Cela semble assez approfondie pour moi: https://stackoverflow.com/questions/11233267/how-to-pass-customactiondata-to-a-customaction-using-wix – PhilDW

+0

ma question est l'inverse de cela, je veux de CA à WIX XML – asvignesh

+0

Avez-vous essayé d'écrire la valeur dans le registre et de la lire à partir de là? –

Répondre

4

Vous ne pouvez pas modifier la session à partir d'une action personnalisée différée; À ce moment, MSI exécute son script et il n'y a pas de session à proprement parler. Vous ne pouvez donc pas définir une propriété. Vous avez besoin d'un autre mécanisme pour communiquer le statut. La bibliothèque native de WiX inclut les fonctions WcaDeferredActionRequiresReboot pour signaler qu'un redémarrage est requis et WcaDidDeferredActionRequireReboot pour une action personnalisée immédiate planifiée après InstallFinalize pour détecter l'état de redémarrage.

1

Vous pouvez ajouter une action personnalisée immédiate InstallFinalize, qui est positionnée après toutes les actions différées, et vous pouvez y réinitialiser le fichier "RESTART" (XML) de l'ensemble selon vos besoins, car la session sera disponible. le encore.

+0

la valeur restart est true ou non peut être gérée uniquement par cette méthode particulière, impossible de transmettre la valeur – asvignesh

+1

Vous pouvez définir la valeur sur CustomActionData dans l'action différée. Ensuite, lisez cette valeur à InstallFinalize action personnalisée immédiate de la même CustomActionData et l'écrivez à session ["RESTART"]. –

+1

Non, les actions personnalisées en mode immédiat après InstallFinalize ne doivent jamais être utilisées. Ils ne devraient certainement pas changer le système - aucune action personnalisée en mode immédiat ne devrait l'être, et ils seront entièrement ignorés lorsque l'installation est exécutée en mode silencieux (pas d'interface graphique). En outre, ils peuvent déclencher des problèmes d'autorisation lorsque l'installation est lancée (un utilisateur normal exécute l'installation). Au moins, il l'a fait quand j'ai essayé il y a des années - je n'ai jamais utilisé la construction depuis. Je pense qu'il y avait aussi d'autres problèmes dont je ne me souviens pas pour le moment. Peut-être essayer d'écrire au registre comme je l'ai mentionné ci-dessus, puis relire. –