Suppression de fichiers lors de la désinstallation de WiX
Lors de la désinstallation de mon application, j'aimerais configurer le Wix programme d'installation pour supprimer tous les fichiers qui ont été ajoutés après l'installation d'origine. Il semble que le programme de désinstallation ne supprime que les répertoires et les fichiers qui ont été installés à partir du fichier MSI et il laisse tout ce qui a été ajouté plus tard dans le dossier de l'application. En d'autres termes, je voudrais purger le répertoire lors de la désinstallation. Comment dois-je faire?
Vous devez vous connecter pour publier un commentaire.
Utilisation RemoveFile élément avec Sur="désinstaller". Voici un exemple:
Mise à jour
Malheureusement programme d'installation de Windows ne prend pas en charge la suppression des répertoires avec des sous-répertoires. Dans ce cas, vous devez recourir à une action personnalisée. Ou, si vous savez ce que les sous-dossiers sont, de créer un groupe de RemoveFolder et RemoveFile éléments.
</Component>
j'ai une compilation a échouéFound orphaned Component 'MyAppFolder'.
Utilisation
RemoveFolderEx
élément d'Util extension dans WiX.Avec cette approche, tous les sous-répertoires sont également supprimées (par opposition à à l'aide de
RemoveFile
de l'élément directement). Cet élément ajoute temporaire lignes àRemoveFile
etRemoveFolder
table dans la base de données MSI.RemoveFile
etRemoveFolder
. Si vous souhaitez conserver les fichiers sur une mise à niveau, vous ne pouvez pas utiliser toutes ces approches.Pour ce faire, j'ai simplement créé une action personnalisée pour être appelé sur désinstaller.
Le WiX code ressemblera à ceci:
Le code de la OnBeforeUninstall méthode InstallerCustomActions.DLL ressemblera à ceci (en VB).
Voici une variation sur @tronda de la suggestion. Je suis la suppression d'un fichier "install.journal" qui est créée par une autre Action Personnalisée, lors de la Désinstallation:
Comme je le comprends, je ne peux pas utiliser "RemoveFile" car ce fichier est créé après l'installation, et ne fait pas partie d'un Groupe de Composants.
Pas un WIX expert, mais pourrait possible (simple?) la solution à cela est de lancer le Calme De L'Exécution De L'Action Personnalisée qui fait partie de la construction dans les extensions de WIX?
Pourrait exécuter le rmdir de commande MS-DOS avec le /S /Q options.
Et de l'action personnalisée à faire le travail est simple:
Alors vous devrez modifier le InstallExecuteSequence comme l'a documenté de nombreux endroits.
Mise à jour:
Eu des problèmes avec cette approche. Fini par faire une tâche personnalisée à la place, mais considère toujours ce une solution viable, mais sans obtenir les détails de travailler.
cmd.exe
dans votre programme d'installation. 2) Vous souhaitez apporter des modifications au système au cours de génération de script 3) Il n'y a pas de restauration option 4) Ne pas traiter avec les fichiers verrouillés correctementCe serait une réponse plus complète pour @Pavel suggestion, pour moi, c'est de travailler à 100%:
Et, en vertu de l'élément Produit:
Cette approche de définir une valeur de registre le chemin d'accès du dossier supprimé lors de la désinstallation.
À la fin, les deux dossier d'installation de registre et les dossiers sont supprimés du système. Notez que le chemin d'accès à ce registre peut être à d'autres de la ruche et d'autres endroits.