Domanda

Sto cercando di chiudere un processo prima di disinstallazione utilizzando Wix. Ho confermato che funziona finché c'è una finestra visibile, ma se non c'è una finestra visibile (che è il caso il più delle volte con questa applicazione in quanto si tratta di un'applicazione barra di sistema), il programma di disinstallazione solo si blocca, e infine continua con la disinstallazione, lasciando il processo in esecuzione.

questo post nel forum , è sembra Wix ha avuto problemi a chiudere le applicazioni minimizzate in passato, quindi mi chiedo se questo è legato?

Qualche suggerimento su cosa altro posso fare per assicurarsi che il processo si spegne? C'è un modo per cercare di catturare il messaggio nella mia app utilizzando l'API Win32 forse?

Ecco la dichiarazione CloseApplication:

<util:CloseApplication Id="CloseApp" CloseMessage="yes" Target="App.exe" RebootPrompt="yes" />

Ed ecco l'azione personalizzata:

<Custom Before="InstallInitialize" Action="WixCloseApplications">REMOVE = "ALL"</Custom>
È stato utile?

Soluzione

Sembra che si sta pianificando l'azione personalizzata WixCloseApplications prima dell'operazione di installazione. Il modo in cui le opere d'azione personalizzati, è prevista un'azione differita che si chiude in realtà le applicazioni. Non si può fare quel lavoro a meno che non succede durante la transazione (After="InstallInitialize").

La correzione è probabilmente abbastanza facile. Rimuovere l'elemento Custom/@Action="WixCloseApplications".

Altri suggerimenti

In un primo momento, non dimenticate di riferimento WixUtilExtension.dll di montaggio. Controlla anche se Wix elemento contiene la definizione di UtilExtension namespace:

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">

Ho notato che si dovrebbe cambiare l'azione personalizzata da eseguire prima InstallInitialize.

<Custom Before="InstallInitialize" Action="WixCloseApplications">REMOVE = "ALL"</Custom>

Se si applicano questi cambiamenti e CloseApplications estensione non funziona, prova ad accedere processo di installazione usando

msiexec /i MyApplication.msi /l*v MyLogFile.txt

Ho anche affrontato questo problema. Modifica della Prima attributo "InstallValidate" ha funzionato per me.

<Custom Before="InstallValidate" Action="WixCloseApplications"/>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top