2010-06-07 17 views
0

J'essaie de créer des correctifs en utilisant la méthode de this tutorial. Un problème que je rencontre est que je ne peux pas installer un nouveau correctif sur un correctif précédent.Existe-t-il un moyen de créer un correctif identique à l'installation complète de la nouvelle version?

Je complète installer la version A, puis le correctif à la version B. Après que je ne peux pas patcher à la version C. J'installation complète la version B, puis le correctif à la version C.

Actuellement nous faisons tout installations complètes avec des mises à jour majeures chaque fois qui fonctionne bien, mais en raison de la fréquence de nos mises à jour (internes) la taille du fichier et le temps de mise à jour deviennent un fardeau, donc nous cherchons à réduire le temps de téléchargement. quand la plupart des fichiers ne changent pas. Editer: Une autre exigence est qu'à tout moment une installation complète peut être faite à la place d'un patch. La solution que j'ai trouvée en définissant un code de produit statique fait des installations complètes sur le dessus (sans désinstaller manuellement) ne fonctionne pas.

+0

Essayez-vous de gérer à la fois A à C et B à C? Je pense que vous avez besoin de bases de référence multiples pour cela. Ou est le problème que A à C fonctionne; B to C fonctionne; encore A à B à C échoue? –

+0

@Michael Il était de A à B à C échoue, mais il se trouve que c'était parce que je faisais des mises à jour majeures (en changeant le code du produit). Définir un code de produit statique l'a corrigé pour moi. – Davy8

Répondre

0

On dirait que le problème était que je faisais auparavant toutes les mises à jour majeures des mises à niveau, mais cela n'est pas supporté avec les correctifs. Le passage à un code de produit statique plutôt que la génération automatique l'a corrigé.

Modifier: On dirait qu'il a résolu le premier problème de l'installation d'un correctif patch B C ne fonctionne pas, mais maintenant essayer de faire une installation complète de D sur le dessus ne fonctionne pas.

1

Si vous ne procédez pas à une mise à niveau majeure, mais que vous changez de version, vous effectuez une mise à niveau mineure. Pour pouvoir installer le fichier .msi de la prochaine version sur une version antérieure installée existante, vous devrez définir REINSTALL à une liste de fonctionnalités modifiées quelque part (ou à ALL si vous êtes paresseux et prêt à mettre en place avec Windows L'installateur fait un travail supplémentaire). Souvent défini REINSTALL géré par le bootstrap, mais il est possible de le définir dans le fichier .msi et le réinitialiser à vide ({}) lorsque les versions précédentes ne sont pas installés (condition Not Installed).

+0

Donc vous pensez quelque chose comme ' Installé' à l'intérieur du fichier WiX lui-même fonctionnerait? – Davy8

+0

err bien 'REINSTALLMODE' je suppose et' REINSTALL = True' – Davy8

+0

Fermer. Je ne suggérerais jamais le 'a' de' vamus' sur le 'o' de' vomus' pour 'REINSTALLMODE', et' REINSTALL' est censé contenir une liste de caractéristiques à réinstaller, ou ALL, séparées par des virgules. Et vous avez toujours besoin de l'action personnalisée pour l'effacer lors de son installation initiale (à moins que vous ne souhaitiez que l'erreur). –