2010-07-29 7 views
2

Je crée des paquets de "mise à jour mineure" en utilisant WIX. Je suis confus quand il s'agit de baser les paquets de mise à niveau.générer des correctifs avec WIX - version de base 3 version 1 ou version 2?

Lorsque je génère un correctif, est-ce que je base toujours la version 1, ou est-ce que je base la version 3 sur la version 2?

bref, je vais avoir du mal à comprendre la

<UpgradeImage SourceFile="$(var.ProjNew)" Id="Upgrade1_$(var.NewID)"> 
    <TargetImage SourceFile="$(var.ProjOld)" Order="2" Id="Target1_$(var.NewID)" IgnoreMissingFiles="no" /> 
</UpgradeImage> 

ProjNew devrait pointer vers le nouveau MSI, ce qui devrait ProjOld le point à? le premier MSI, ou le n-1 MSI?

quelqu'un pourrait m'aider à comprendre ce qui se passe et comment le faire correctement? Idéalement, quelqu'un qui exécute la version 1 quand la version 3 sortira pourrait juste obtenir un paquet de mise à jour, qui me laisse croire que je devrais toujours baser la version1. Mais si je fais cela, que se passe-t-il si quelqu'un a la version 2 installée? sont-ils grillés? Je pense que le coeur de ma question est de supposer que j'ai construit trois versions 1, 2 et 3. Supposons que chacun est basé sur la version 1. Si quelqu'un installe la version 1, puis la version 2. Ils obtiennent ensuite la version 3 que va-t-il arriver? msiexec supprimera le patch 2 et appliquera le patch 3? Gardez à l'esprit que le patch 3 est basé sur la version 1.

Répondre

4

D'abord, à moins que vous ne deviez absolument utiliser WiX v2, n'utilisez pas l'élément PatchCreation. Passez à l'utilisation de l'élément Patch de WiX v3. Il est beaucoup plus facile à utiliser, plus puissant et a une meilleure vérification des erreurs.

Maintenant, ce que vous voulez faire est de créer un correctif qui cible plusieurs produits. En d'autres termes, vous voulez un patch unique qui peut cibler à la fois v1 et v2 pour les transformer en v3. La façon dont vous accomplissez ceci est de créer une transformation de v1 à v3 et une autre de transférer de v2 à v3.

Pour cela, commencez par lire la rubrique "Utiliser purement WiX" dans WiX.chm. Lorsque vous arrivez à la partie qui dit «Créer la transformation entre vos produits», faites deux fois cette étape pour créer un v1tov3.wixmst et un v2tov3.wixmst. Ensuite, dans l'étape "Construire le correctif", fournissez les deux fichiers .wixmst sur la ligne de commande. Pyro s'occupera du reste.

Il y a beaucoup d'options dans l'élément Patch. Si vous ne les faites pas, ne les allumez pas. Ce n'est vraiment pas si compliqué lorsque vous suivez les étapes étape par étape et pratiquez un peu.

+0

merci Rob! avez-vous des astuces pour savoir que le travail a été fait correctement? J'aimerais créer des cas d'échec positifs, donc je peux me prouver que je sais ce que je fais :) – stuck

+0

J'utilise généralement Orca pour voir le correctif appliqué aux MSI en question (c'est-à-dire la vérification manuelle). Je n'ai pas fait assez de correctifs pour justifier la construction d'outils pour le vérifier de manière automatisée. –

Questions connexes