J'ai créé un fichier MSI que je souhaite déployer et mettre à jour fréquemment. Malheureusement, lorsque vous installez le MSI, puis essayez d'installer une version plus récente du même MSI, il é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 Visual Studio 2008. J'ai essayé de définir la propriété "Supprimer les versions précédentes" à la fois vrai et faux, dans le but de faire de nouvelles versions remplacer 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 construits par Wise et Advanced Installer. Y a-t-il un paramètre qui me manque? Ou est-ce que ma fonctionnalité souhaitée n'est pas supportée par le projet d'installation de VS 2008?Le programme d'installation MSI échoue sans supprimer une installation précédente
Répondre
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ée? 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 la version que vous essayez d'écraser.
Incrémentez le numéro de version de 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 augmentez-le.
Vous devez changer le ProductCode entre chaque version, si vous ne le faites pas, vous obtiendrez le comportement que vous voyez. Le ProductCode est vu dans les propriétés du projet. Découvrez le MSDN Online Help for ProductCode pour mieux comprendre.
Modifier uniquement le code de produit pour les mises à niveau majeures, les petites mises à jour fréquentes doivent conserver le même code de produit et simplement augmenter la version. Changer le code du produit est effectivement une nouvelle application aux yeux de l'installateur Windows. – saschabeaumont
Avait le même problème en passant de XP à Win7. Pour le résoudre, j'ai dû définir DetectNewerInstalledVersion sur False. Aussi, comme mentionné par d'autres, vous devez inclure la version du projet d'installation.
Bonne chance.
C'est un peu plus complexe:
Pour supprimer automatiquement les versions précédentes de l'application installées dans le projet d'installation, il est nécessaire pour:
- Incrémenter Version propriété (par exemple à partir de 1.0.0 1.0.1 ... change également sur les travaux de 3ème position)
- La version est la propriété du projet d'installation qui identifie, quelle version de l'application est installée ed
- Modifier la ProductCode propriété, donc installateur sait que ce n'est pas le même programme d'installation exécuté deux fois
- ProductCode est la propriété du projet d'installation, Visual Studio propose de changer automatiquement, lorsque La propriété de la version est modifiée
- Conserver la valeur de la propriété "UpgradeCode".
- UpgradeCode est la propriété du projet d'installation
- il doit rester la même pour les « ligne de mise à niveau » ensemble, donc installateur sait de quoi mettre à niveau
- Si vous souhaitez également supprimer ancienne application versions à partir de la liste de logiciels du Panneau de configuration, définissez RemovePreviousVersions sur true
Je fais toutes les versions précédentes, mais pas désinstaller par .msi. J'ai le script de vb pour changer la version et le code de produit sur la construction réussie. La propriété RemovePrevious Version est également définie sur true. s'il vous plaît aider toute idée? comment surmonter. –
Comment accéder à la propriété 'Version' du projet de déploiement? Quelles sont les étapes exactes? – sagesky36