MSI n'installe pas tous les fichiers lorsque RemovePreviousVersion est exécuté
J'ai une MSI construire à l'aide de WiX version 3.
Tous les précédents programmes d'installation pour le produit dont nous sommes le déploiement a bien fonctionné avec la configuration spécifiée (c'est à dire: si la version précédente existe, supprimez, puis d'installer la nouvelle version) - toutefois, la nouvelle Msi nous construire de ne pas installer tous les fichiers quand il traverse la 'supprimer la première chemin de.
Si nous supprimer manuellement l'installation existante, puis exécuter la nouvelle version tous les fichiers sont installés - et quand j'examine le fichier MSI dans Orca les fichiers et les caractéristiques sont présentés et semblent être très bien.
Nous avons essayé de courir avec des informations détaillées et extra enregistrement activé (/l*vx
) cependant tout ce que nous pouvons voir si les fichiers ne sont pas enregistrés & puis installé.
Des idées ou des suggestions? Ce qui nous entraîne vers le haut du mur.
source d'informationauteur Matthew Savage
Vous devez vous connecter pour publier un commentaire.
Basé sur la valeur par défaut personnalisé des séquences d'action, le programme d'installation de Windows détermine quels fichiers doivent être installés ou remplacés avant d'enlever toutes les versions existantes du logiciel. Windows Installer utilise la valeur de la propriété REINSTALLMODE dire comment prendre des décisions sur le moment de remplacer les fichiers. Si REINSTALLMODE contient un "o", puis il s'installe uniquement les fichiers où la version est différente ou si le fichier n'existe pas déjà; fichiers sans version sera installée uniquement si la Date de modification du fichier <= la Date de création (c'est à dire le fichier n'est pas modifié). Si le REINSTALLMODE contient un "a", il sera toujours installer le fichier, peu importe la version ou la date de l'information attachée à des fichiers existants.
Ce qui se passe dans votre scénario plus probable est la suivante:
Le résultat final est qu'un tas de fichiers sont manquants après la mise à niveau du logiciel. Réglage REINSTALLMODE=amus au lieu de omus sera probablement de résoudre votre problème, mais vous devez vous assurer que vous savez comment cela affecte le reste de votre installation. S'il y a des fichiers que vous ne voulez pas être remplacée, vous aurez besoin de marque de ces composants à "ne Jamais Écraser".
OK, bien de parler à quelqu'un d'autre où je suis m'a aidé à trouver une solution au problème.
Nous avons ajouté la propriété
REINSTALLMODE
et mis àamus
. Qu'est-ce que cela signifie?Par défaut, la propriété est définie à
omus
qui signifie: Réinstaller si le fichier est manquant ou plus, la réécriture de registre de la machine et l'utilisateur de l'urticaire, de réinstaller les raccourcis. La modification de ce àamus
dit en gros: Réinstallation de tous les fichiers.Donc, pas 100% sûr de ce que la cause en était, je crois, il peut y avoir eu étrange de serrures ou de quelque chose, mais la mise à
amus
ne pas être sur tous les effets indésirables, donc nous allons nous en tenir à cela.Merci pour les suggestions.
(Aussi, plus de détails sur cette propriété peut être trouvé ici: MSDN: Propriété REINSTALLMODE
Quel est votre
<RemoveExistingProducts After="">
étape? Il se pourrait que la removeexisting est en cours d'exécution après l'install -- et la suppression de tous les fichiers qui étaient les mêmes dans les précédentes versions actuelles.J'ai mon installateur à
<RemoveExistingProducts After="InstallInitialize">
pour s'assurer qu'il est fait avant toute autre chose. Je ne sais pas si c'est juste ou pas, mais il semble fonctionner.