Comment fermer une application avant de procéder à une installation avec Wix Toolset ?

Depuis longtemps déjà, Wix Toolset dispose d'une action CloseApplication permettant de fermer une application. Depuis Wix 5 les choses ont un peu changé, et utiliser cette action n'est plus aussi facile. Surtout si l'on souhaite exécuter celle-ci avant de procéder à une installation.

Si vous suivez les indications qui suivent, vous devriez y arriver du premier coup.

Pour commencer, il faut installer l'extension WixToolset.Util.wixext via nuget.

Le nœud Wix du fichier wxs doit être modifié pour inclure le préfix util.


<Wix
  ...
  xmlns:util="http://wixtoolset.org/schemas/v4/wxs/Util"
    />

On peut ensuite définir une ou plusieurs actions CloseApplication.


<util:CloseApplication
  Id="CloseApp1"
  Target="App1.exe"
  CloseMessage="yes"
  RebootPrompt="no"/>

Pour finir, il ne reste plus qu'à modifier la séquence InstallExecuteSequence afin que Wix4CloseApplications_X64 s'exécute avant la validation de l'installation. C'est la partie qui diffère par rapport aux anciennes versions de Wix Toolset.


<InstallExecuteSequence> 
 <Custom Action="override Wix4CloseApplications_X64" Before="InstallValidate" />
</InstallExecuteSequence>

Note : il faudra utiliser Wix4CloseApplications_X86 pour un installer 32 bits.
Jérémy Jeanson

Comments

You have to be logged in to comment this post.