2013-07-01 18 views
12

Ho due azioni personalizzate, una delle quali vorrei eseguire quando il mio prodotto è installato e l'altro quando viene disinstallato.Come posso eseguire un'azione personalizzata in WiX che viene eseguita solo durante l'installazione o la disinstallazione?

La mia azione personalizzata è attualmente chiamata da un modulo di unione dopo "InstallFinalize", ma ciò accade sia per l'installazione che per la disinstallazione. Ho provato ad aggiungere il "non viene installato e NON UPGRADINGPRODUCTCODE" condizione, ma che mi ha dato un errore:

Error 2762. Cannot write script record. Transaction not started.

Ho anche provato il collegamento ad altre azioni (ad esempio, UnpublishComponents), ma non posso trova quelli che sono unici da installare o disinstallare.

Come posso risolvere questo problema?

+0

possibile duplicato di [Come aggiungere un'azione personalizzata WiX che si verifica solo in caso di disinstallazione (tramite MSI)?] (Http://stackoverflow.com/questions/320921/how-to-add-a-wix-custom- action-that-happens-only-on-uninstall-via-msi) –

risposta

11

provare la prossima
1. solo per l'installazione:

<InstallExecuteSequence> 
<Custom Action="SomeAction" After="InstallFinalize">NOT Installed AND NOT REMOVE</Custom> 
</InstallExecuteSequence> 

2. per la disinstallazione tenta di utilizzare: Rob's answer

UPGRADINGPRODUCTCODE proprietà è impostata solo durante RemoveExistingProducts CA.

+0

Grazie mille, questo è il modo per farlo. –