2015-07-13 1 views
0

J'ai un problème lorsque la désinstallation de mon application ne supprime pas les fichiers. Je trouve que là quand l'application est dans le journal il de désinstaller imprime:WIX: Le produit n'est pas désinstallé complètement (les fichiers du système ne sont pas supprimés)

... MSI (s) (0C:84) [11:39:07:836]: Disallowing uninstallation of component: {51DB6066-AFCD-5A03-BE34-09E197799057} since another client exists ...

, je découvre en utilisant Wix Toolset a l'API appelée DTF (mentionné dans Wix toolset: complete cleanup after "disallowing uninstallation of component since another client exists") et j'exécutais requête dans LINQPad (C# Déclaration):

(appuyez sur F4 pour namespaces à l'importation et référence additiona)

//using Microsoft.Deployment.WindowsInstaller; 
//using System.Linq; 
// <ref>"C:\Program Files (x86)\WiX Toolset v3.9\SDK\ 
     Microsoft.Deployment.WindowsInstaller.dll"</ref> 


var client = ComponentInstallation.AllComponents 
    .Where (c => c.ComponentCode == "{72ED6979-0AAD-317C-A25C-AB9A121E6D30}") 
    .Select(c => c); 
client.Dump(); 

qu'il y i s vieux recods: enter image description here

Je ne peux pas les supprimer en utilisant "msiexec/x {GUID}" parce que ces produits sont marqués comme "IsInstalled = False".

Alors, comment supprimer ces anciens enregistrements?

+0

J'ai trouvé des fonctionnalités par nom dans le registre et les ai supprimées de: [HKEY_CLASSES_ROOT \ Installer \ Features \ ... Mais le processus de désinstallation ne supprime toujours pas les fichiers et les mêmes informations sont affichées dans le journal. Il reste encore l'élément racine ProductInstallation avec 0 éléments de fonctionnalités. – Drasius

Répondre

0

du composant Désinstallation Interdire: {51DB6066-AFCD-5A03-BE34-09E197799057} depuis un autre client existe

Cela signifie généralement qu'il ya un ou plusieurs produits actuellement installés sur votre système qui référence à ce composant .

Avez-vous veillé à ce qu'il n'y ait aucun autre produit sur le système qui fait référence à ce composant?

Vous ne voulez pas faire ce genre de nettoyage car Windows Installer gère tout cela sans intervention de l'utilisateur.

Avez-vous installé une version antérieure de votre produit ou ce fichier est-il installé par un module de fusion?

+0

Bonjour, je sais ce que ça veut dire. Le produit d'installation ne gère pas ces fonctionnalités et il reste en double. A cause de cela, les fichiers ne sont pas supprimés. J'ai essayé l'installation des anciennes versions, mais cela n'aide pas. Ces enregistrements peuvent être la conséquence d'une configuration personnalisée lors du développement d'un produit (il se peut que j'ai changé de GUID pour certains produits et installé cette version personnalisée, je ne suis pas sûr). – Drasius

+0

Pourriez-vous donner plus de précisions sur ce que vous voulez dire quand vous dites "Remplacement des fonctions"? Dans le monde de l'installateur Windows, si un composant est enregistré sur le système, il est toujours associé à un produit. Avez-vous essayé de déterminer les autres clients associés au composant. Vous pouvez le faire en utilisant l'API: https://msdn.microsoft.com/en-us/library/aa370094%28v=vs.85%29.aspx. –

+0

Voir mes images dans la question d'histoire, il y a des dispositifs associés au produit. Donc pour certains PC nous avons résolu, il y avait un dossier manquant et la désinstallation échouait. Mais pour mon PC certains registres sont cassés, parce que je ne peux pas le réparer. – Drasius