2015-11-25 4 views
0

J'écris personnalisé BA. Le package Msi inclus dans le bundle a une condition d'installation incorrecte. (Il vérifie la clé de registre avant l'installation, et avant de désinstaller aussi). Le problème est le suivant: si la clé de registre n'a pas été trouvée, le paquet msi ne peut pas être désinstallé. Les conditions d'installation de Msi ne peuvent pas être modifiées. Comment puis-je forcer msi à ignorer cette condition dans BA personnalisé lors de l'installation/désinstallation.Wix personnalisé BA: Comment ignorer les conditions d'installation de msi? Ou comment exécuter la force de désinstallation de msi

Existe-t-il un moyen de désinstaller forcer en utilisant msiexec?

Toute aide sera très appréciée! Merci!

Répondre

1

Ceci est très très ennuyeux, j'ai été dans une situation similaire moi-même. La première règle du développement d'installateurs consiste à les tester uniquement dans une machine virtuelle que vous pouvez restaurer dans un état connu, mais c'est trop tard maintenant.

Il existe 2 approches, essayez d'abord la plus simple. Trouvez votre MSI de désinstallation qui est mis en cache dans %windir%\installer\. Il aura été renommé afin de déterminer lequel il est par horodatage. Notez le nom du fichier. Construire un nouveau programme d'installation sans les exigences qui bloque la désinstallation et réécrire le nom de fichier que vous avez noté plus tôt. Maintenant, essayez de le désinstaller. Si cela fonctionne, vous avez terminé.

Si cela ne fonctionne pas, vous devrez effectuer un certain piratage du MSI pour lui permettre de désinstaller proprement. Vous aurez besoin d'installer l'outil Orca qui vous permet d'afficher les tables brutes composant votre MSI. Ceci est très utile pour le développement MSI, vous pouvez donc vouloir l'installer quand même. Cela vous permettra de mieux comprendre la chaîne d'outils MSI. Il est inclus dans le kit de plate-forme Windows. Si vous utilisez Visual Studio, vous pouvez trouver le programme d'installation quelque part semblable à C:\Program Files (x86)\Windows Kits\8.0\bin\x86. Une fois que vous avez installé Orca, vous devrez trouver votre installateur dans %windir%\installer\ comme dans la méthode 1. Ouvrez ce MSI dans Orca et trouvez l'action incriminée dans la bonne table et modifiez-la de façon appropriée. Vous êtes légèrement seul ici, mais laissez un commentaire si vous ne pouvez pas l'identifier. Ensuite, enregistrez le fichier MSI et voyez si cela fonctionne.

J'ai été capable de l'utiliser pour désinstaller certains programmes d'installation assez brouillés que j'ai créés avant d'apprendre à utiliser des machines virtuelles.

+0

Merci pour votre réponse. Modification de .msi (extrait de% windir% \ installer \) en utilisant Orca, problème partiellement résolu. Le programme est vraiment utile. Mais la situation semble un peu différente. La mise à niveau/désinstallation de l'ancien msi doit être corrigée par programmation. J'ai essayé des commandes msiexec, pour remplacer l'ancien msi (msiexec/fv "new_msi_path"), mais aucun résultat. Donc, je ne vois pas de bonnes façons de résoudre ce genre de problèmes, sauf les hacks, comme modifier msi (tiré de% windir% \ installer \) comme base de données en utilisant wix dll spécial ou en supprimant les clés de registre. –