windows - WiX call app på afinstallation før brugerprompt 'lukke manuelt'

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg fik et installatør, der installerer et program og starter dette lige efter installationen var færdig. Dette virker ordentligt for mig.


Men nu vil jeg stoppe denne applikation, mens du afinstallerer programmet, jeg vil ikke have brugeren bedt om at lukke applikationer manuelt. Dette skal fungere fuldautomatisk.


Jeg ned for at gøre dette ved hjælp af en brugerdefineret handling, WM\_CLOSE beskeden fungerer ikke i min tilgang (jeg har virkelig prøvet det et par gange).


Jeg troede, at det ikke kan være så svært, men jeg får det ikke til at fungere. Hvad jeg gjorde så langt:


Jeg definerede en CustomAction:


<CustomAction Id="CloseTrayApp" ExeCommand="-exit" FileKey="TrayApp" Execute="immediate" Return="asyncNoWait" />


og kaldte det liek dette:


<InstallExecuteSequence>
...
    <Custom Action="CloseTrayApp" Before="InstallValidate" />
...
</InstallExecuteSequence>


Men det virker ikke. Jeg gætter på, at jeg skifter min brugerdefinerede handling forkert, men jeg kan ikke finde ud af den rigtige tid til at gøre det.


Er der nogen forslag til tidspunktet/stedet for at planlægge den tilpassede handling i? Jeg er helt usikker på, om


Before="InstallValidate"


er det rigtige sted at gøre det.

Bedste reference


I dialogboksen FilesInUse Dialog help, før InstallValidate er det rette sted at planlægge den tilpassede handling. Men jeg er forvirret over, hvorfor WM\_CLOSE ikke virker for dig. Jeg så dig stillede et andet spørgsmål og accepterede det som svaret. Måske kan din TrayApp have en 'skjult' formular, som brugeren aldrig ser, men kører for at modtage WM\_CLOSE beskeden. Dette er et trick jeg har lavet mange gange gennem årene. [4]


Ellers, hvis du virkelig vil ringe til din EXE, foreslår jeg aldrig at bruge en EXE-tilpasset handling. I stedet skal du bruge den stilfulde udførelse-tilpassede handling. Af nogle årsager til hvorfor du gør dette, se Integration Hurdles for EXE Custom Actions. [5] [6]