Wix: Comment désinstaller l'application déjà installée qui est installé en utilisant un installateur différent

supposez que vous avez un installateur (pas un installateur wix) que vous avez téléchargé quelque part. Comment Pouvez-vous connaître le code de mise à niveau de cet installateur pour pouvoir le remplir dans la section UpgradeCode du nouvel installateur que vous préparez?

puis-je l'apprendre du registre? La question est donc, fondamentalement, comment connaître le UpgradeCode d'un programme qui est installé dans l'ordinateur.

en Fait, mon problème est que mon produit a été installé avec un autre installateur et je suis maintenant en train d'essayer de le déplacer à l'installateur wix. Cependant, je ne trouve pas de code de mise à jour dans l'installateur précédent et je veux le trouver à partir du logiciel installé.

Merci.

1
demandé sur Dundar 2014-06-20 15:52:42

3 réponses

Comme je l'ai posté à WiX utilisateurs:

j'ai vu cela fait en ayant la mise à jour obtenir la chaîne de désinstallation à partir du registre, où il devrait y avoir une commande que vous pouvez utiliser car il n'est pas basé MSI. Que vous l'appeliez dans la séquence UI ou la séquence execute ou les deux dépend de vos exigences pour silent installs, ce qui signifie que vous auriez besoin de le faire silencieusement dans la séquence execute, et peut-être besoin de modifier la commande uninstall pour le rendre silencieux.

la même idée générale devrait fonctionner si cette installation a un raccourci standard de désinstallation, vous pouvez obtenir la commande à partir. De toute façon, vous utilisez juste un CA pour exécuter un programme externe, ou peut-être un utilitaire CAQuietExec genre de chose.

1
répondu PhilDW 2014-06-20 16:39:48

Démarrer PowerShell (exécuter en tant qu'administrateur) et exécuter cette commande pour obtenir une liste des produits installés avec le code produit :

Get-WmiObject Win32_Product | Format-Table Name, LocalPackage

vous obtiendrez une liste de tous les produits MSI installés, et un chemin d'accès bizarre à la base de données MSI mise en cache locale. Il ressemble normalement à quelque chose comme ceci:

C:\Windows\Installer5bbf8.msi

Le 235bbf8.msi nom du fichier: aléatoire , et sera différent pour chaque produit installé. C'est une copie mise en cache du fichier MSI que vous avez installé à l'origine. Il ne contient pas de fichiers cab (ou du moins pas dans les anciennes versions de Windows).

vous pouvez ouvrir ce fichier avec le nom aléatoire de Orca En choisissant Fichier -> Ouvrir puis coller dans le chemin complet vers le dialogue Ouvrir Fichier, puis en appuyant sur Ouvrir. de Ne faire aucun changement mais vérifier le code de mise à niveau dans la table de propriétés . Vous pouvez également utiliser d'autres outils MSI comme Installshield.

notez que le chemin d'accès C:\Windows\Installer est " super protégé " et n'est même pas visible dans Windows Explorer avant que vous n'activez l'affichage des dossiers cachés et que vous désactiviez l'option Protéger les fichiers du système d'exploitation. Je crois toujours que vous pouvez ouvrir directement le fichier si vous collez tout le chemin vers Orca - pas besoin de passer par Windows Explorer.

2
répondu Stein Åsmul 2014-06-22 21:06:27

en supposant que C'est un installateur basé sur Windows ( WiX, InstallShield, et al), vous pouvez l'éditer avec ORCA et regarder la table de propriété pour voir son code de mise à jour. Vous devrez peut-être d'abord l'extraire s'il a été empaqueté en tant qu'installateur auto-extracteur.

vous pouvez également interroger L'API MSI ou regarder dans le registre (HKCR\Installer) pour cette information. Si vous allez à la route du registre, il est probablement plus facile de regarder les produits/GUID / clé Sourcelist et tracer retour à un MSI caché et regardez-le à ORCA. Sinon, vous devez apprendre à rejoindre différents ensembles de données et de convertir Darwin GUIDS transformés retour à leur format original GUID.

1
répondu Christopher Painter 2014-06-20 13:17:09