J'ai une action personnalisée qui supprime divers répertoires dans le cadre du processus de désinstallation. Je veux appeler cette action à différents points dans la séquence d'installation en fonction de ce qui se fait:WIX Action personnalisée - Exécuter à différents moments pour l'installation, la mise à niveau et la désinstallation
- Lors d'une installation, ne pas exécuter l'action personnalisée
- Lors d'une mise à niveau, exécutez l'action personnalisée après RemoveExistingProducts
- Lors d'une désinstallation, exécutez l'action personnalisée après RemoveFolders
Je peux probablement obtenir chacun d'entre eux de travailler individuellement, mais comment puis-je les faire travailler ensemble la façon dont je veux. J'ai essayé quelque chose comme ça (un code de prendre here):
<InstallExecuteSequence>
<Custom Action="PreventDowngrading" After="FindRelatedProducts">
NEWERPRODUCTFOUND AND NOT Installed
</Custom>
<LaunchConditions After="AppSearch" />
<RemoveExistingProducts Before="InstallInitialize" />
<!-- NEW _> Clean old files AFTER uninstall during an upgrade -->
<Custom Action="CleanUp" After="RemoveExistingProducts" >
UPGRADINGPRODUCTCODE
</Custom>
<!-- NEW _> Clean old files LAST during an uninstall -->
<Custom Action="CleanUp" After="RemoveFolders" >
(NOT UPGRADINGPRODUCTCODE) AND (REMOVE="ALL")
</Custom>
</InstallExecuteSequence>
Mais obtenir une erreur de symbole en double quand je fais construire. Toute aide est la bienvenue!
C'est une mise à niveau majeure que je fais, mais la désinstallation ne supprime pas les fichiers ajoutés au dossier, donc il reste souvent des choses qui traînent après la désinstallation. Quels avantages utiliserait les états d'action des composants sur les propriétés que j'ai utilisées? À la vôtre, Matt. – mattyB
Regardez l'élément . Vous pouvez spécifier un ID de répertoire et FileSpec et cela va apprendre à MSI à faire le nettoyage supplémentaire pour vous. Alors vous n'avez pas à jouer avec toutes ces actions personnalisées risquées. –
Est-ce que ne fonctionnera pas si le dossier est vide? À la fin, j'ai utilisé une action personnalisée, mais je préférerais le faire entièrement dans l'installateur la prochaine fois. –
mattyB