Comment faire pour que InstallShield le désinstalle automatiquement l'installation existante?

est-ce possible?

Tout ce que je peux voir la recherche autour est essentiellement que j'ai besoin d'utiliser des outils tiers (par exemple Orca) pour obtenir des Gids à partir de mon MSIs existant et configurer InstallShield avec ceux-ci pour désinstaller la version existante. J'ai essayé une ou deux de ces ensembles d'instructions, mais rien n'a fonctionné jusqu'à présent. Probablement parce que je fais quelque chose de mal, mais il semble que je saute à travers beaucoup de cerceaux pour faire quelque chose que je pense devrait être relativement straight-forward. N'a pas ce problème à été résolu avant?

le résultat principal de google pointe à cette réponse :

  • ouvrez votre ancien MSI avec Orca et obtenez son code de mise à niveau de la table de propriété
  • dans votre projet InstallShield le aller à "Informations générales" dans Solution explorer
  • assurez-vous que le champ "code de mise à niveau" est défini à votre ancien mode de mise à niveau MSI

est-ce que cela signifie que je dois ouvrir mon 'vieux MSI avec Orca et obtenir son code de mise à jour' chaque fois que je veux déployer une nouvelle version?

cela sonne un peu hackish, et est certainement quelque chose que je ne veux pas avoir à faire chaque fois que je déploie une nouvelle version. Est-il un moyen d'automatiser cela? Est - ce que cette fonctionnalité est disponible dans les versions plus avancées de InstallShield (sans oublier que je suis sur LE-je vais mettre à jour si nécessaire)

25
demandé sur Community 2012-07-18 15:41:22

3 réponses

InstallShield LE, comme le projet D'installation avant lui, permet l'installation d'une nouvelle version du produit qui remplacer la version précédemment installée. Quant à savoir si c'est techniquement une désinstallation de l'ancien produit, ou une mise à niveau sur place semble de peu d'importance.

la clé est dans la différence entre code de produit et code de mise à niveau :

  • code de produit: étant donné que ce code identifie votre produit de façon unique, il n'est pas recommandé de changer le code de produit après que vous ayez déjà distribué votre version.

  • code de mise à niveau: le code de mise à niveau, stocké dans la propriété Upgredecode, doit rester le même pour toutes les versions d'un produit.

InstallShield CHIER de bibliothèque d'aide.)

il n'est pas très simple d'utiliser ces codes pour déployer des produits et des mises à jour de versions du même produit.

InstallShield LE General Information

le texte d'aide donne l'impression qu'il ne faut jamais changer le code du produit. Ce n'est pas le cas. Il devrait probablement être écrit plus clairement pour dire "puisque ce code identifie de façon unique votre produit version , il n'est pas recommandé de modifier le code du produit après que vous ayez déjà distribué une version particulière ."... ou quelque chose comme ça.

Fondamentalement, vous devrait modifier le Code du Produit lors de la création d'une nouvelle version de la release. laissez le code de mise à jour! pour changer le Code du produit, cliquez sur le bouton {..} à droite du code. InstallShield LE générera un nouveau code.

ma procédure standard est de changer les versions pour mes projets, de générer un nouveau code produit, et de construire le projet de configuration D'InstallShield.

lors de l'installation du produit sur une machine avec une version antérieure déjà installée, le projet de configuration le mettra à jour et ne laissera qu'une seule version (la dernière) du programme installé sur la machine cible.

61
répondu JYelton 2012-08-04 21:14:25

autant que je sache, la réponse de YJelton est correcte, mais si vous voulez vous assurer que l'ancien produit est supprimé, vous devez ajouter un élément MajorUpgrade à la table de mise à niveau -- si vous gardez le code de mise à niveau le même (comme recommandé), vous pouvez sélectionner l'option" produits partageant mon Code de mise à niveau "et pour la Version du produit, vous pouvez sélectionner"toute version antérieure".

de cette façon, si le Code de mise à jour est le même que votre ancien produit, et votre nouveau produit a un plus tard numéro de version l'ancien produit sera supprimé.

si vous voulez changer le code de mise à niveau, vous pouvez ajouter un élément MajorUpgrade qui a sélectionné l'option" Produits ayant un autre Code de mise à niveau". Puis coller dans votre ancien code de mise à jour.

3
répondu ksun 2013-06-12 15:30:49

aller à" upgrade path " et définir la version min à blank, MAX ver. actuel. inclure max/min pour yes et tout le code id pour un guid.

-1
répondu Petar 2016-05-11 11:40:22