Le programme d'installation MSI échoue sans supprimer une installation précédente

StackOverflow https://stackoverflow.com/questions/40603

  •  09-06-2019
  •  | 
  •  

Question

J'ai construit un MSI que j'aimerais déployer et mettre à jour fréquemment.Malheureusement, lorsque vous installez le MSI, puis que vous essayez d'installer une version plus récente du même MSI, le message échoue avec un message du type « Une autre version de ce produit est déjà installée.L'installation de cette version ne peut pas continuer..." apparaît.Le MSI a été construit avec un projet d'installation de Visual Studio 2008.J'ai essayé de définir la propriété "Supprimer les versions précédentes" sur true et false, dans le but de simplement faire en sorte que les versions les plus récentes écrasent l'ancienne installation, mais rien n'a fonctionné.Dans une entreprise précédente, je sais que je n'ai pas eu ce problème avec les installateurs créés par Wise et Advanced Installer.Y a-t-il un paramètre qui me manque ?Ou la fonctionnalité souhaitée n'est-elle pas prise en charge par le projet d'installation de VS 2008 ?

Était-ce utile?

La solution

J'ai construit de nombreux MSI avec VS 2005 Pro qui le font correctement.

Etes-vous sûr que la propriété 'Version' du projet de déploiement a été incrémenté ?Cette propriété est indépendante de la version des assemblys dans l'application, et c'est le message d'erreur que vous verrez si la propriété Version du MSI est la même que celle de celui que vous essayez d'écraser.

Autres conseils

Incrémentez le numéro de version sur votre projet.

Dans VS, sélectionnez le nœud de votre application de configuration et appuyez sur F4 pour afficher les propriétés.Recherchez le champ de version et incrémentez-le.

Vous devez modifier le ProductCode entre chaque version, si vous ne le faites pas, vous obtiendrez le comportement que vous voyez.Le ProductCode est visible dans les propriétés du projet.Vérifiez Aide en ligne MSDN pour ProductCode pour mieux comprendre.

C'est un peu plus complexe :

Pour supprimer automatiquement les versions précédentes de l'application installée dans le projet d'installation, il est nécessaire de :

  1. Incrémenter le Version propriété (par ex.de 1.0.0 à 1.0.1...le changement sur la 3ème position fonctionne également)
    • Version est la propriété du projet d'installation qui identifie la version de l'application installée
  2. Changer la Code produit propriété, afin que l'installateur sache qu'il ne s'agit pas du même installateur exécuté deux fois
    • Code produit est la propriété du projet d'installation, Visual Studio propose de le modifier automatiquement, lorsque Version la propriété est modifiée
  3. Conservez la valeur de la propriété "UpgradeCode".
    • Code de mise à niveau est également la propriété du projet d'installation
    • il doit rester le même sur toute la "ligne de mise à niveau", afin que l'installateur sache quoi mettre à niveau
  4. Si vous souhaitez également supprimer les anciennes versions d'applications de la liste des logiciels du Panneau de configuration, définissez Supprimer les versions précédentes à vrai

J'ai eu le même problème en passant de XP à Win7.Pour le résoudre, j'ai dû définir DetectNewerInstalledVersion sur False.De plus, comme mentionné par d'autres, vous devez inclure la version du projet d'installation.

Bonne chance.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top