J'ai un grand programme dans WiX qui utilise un tas de MSI, C# programmes d'action personnalisés, UI, bootstrapper, vous l'appelez, c'est là.WiX: existe-t-il un moyen de dire quel fichier n'est pas écrasé lors d'une mise à niveau majeure?
J'ai ce problème: lorsque j'effectue une mise à niveau majeure, la version précédente n'est pas effacée. En d'autres termes, si je passe de la version 1.0.0.x à la version 1.1.0.x, Programmes & Les fonctions indiquent que les deux versions sont installées sur la machine.
Ceci est un problème commun, avec de nombreuses solutions ici sur SO. Aucun d'eux ne travaille pour moi - s'il y a un poste de SO à ce sujet, je l'ai essayé.
On m'a dit qu'il existe une relation un-à-un entre les composants d'une mise à niveau majeure. C'est-à-dire que pour chaque composant supprimé, un autre composant doit être ajouté. Quand ce n'est pas une relation de one-to-one, c'est quand l'ancienne version n'est pas supprimée - parce qu'il y a encore de vieux composants qui pendent.
Existe-t-il un moyen de déterminer quels composants sont suspendus? Comme, dans les fichiers journaux ou quelque chose? Si je pouvais déterminer ce que MSI a le problème, je pourrais être beaucoup plus proactif dans la résolution du problème.
EDIT:
Bien que je ne l'ai pas résolu le problème, grâce aux suggestions de M. Urman I peuvent être sur la bonne voie.
J'ai créé cette clé de registre, mais ... elle ne semblait pas faire quoi que ce soit. Cependant, je l'ai fait chercher mes journaux de désinstallation pour le mot « Disallow », et je trouve cette phrase 9 fois:
Disallowing uninstallation of component: {GUID-HERE} since another client exists.
En outre, cette phrase apparaît avant chaque regroupement de l'expression « Rejeter »:
PROPERTY CHANGE: Adding INSTALLLEVEL property. It's value is '1'.
Cela me donne quelque chose à faire. Cependant, je n'arrive pas à trouver les GUID qui sont mentionnés! Ils ne sont pas dans ma solution et ils ne sont pas consultables dans le registre. Outre la recherche dans le registre, existe-t-il un moyen (Windows 7 32 bits) de savoir à quel composant un GUID spécifique correspond?
Je suis définitivement en train de faire une mise à jour majeure, bien que certains de mes numéros de version ne soient pas modifiés car je veux que ces MSI soient uniquement installés lors de l'installation initiale. J'ai une question sur ce chemin de politique de journalisation dans le registre: le dernier "dossier" - Installer - n'est pas sur ma machine (Virtual Machine Win 7 32 bits). Dois-je le créer manuellement, puis créer le tuple valeur/données dans le dossier "Installer" créé manuellement? – Bob