2010-01-21 6 views
2

C'est un peu un problème étrange. J'ai un programme d'installation qui doit vérifier la version de Windows Installer sur une machine, donc j'utilise la propriété VersionMsi pour le faire.Pourquoi WiX détecte Windows Installer 4.05 lorsque 4.5 est installé?

Cependant, lors d'une tentative sur un ordinateur Vista 32 bits, j'ai constaté qu'il a installé 4.05. J'ai donc vérifié msi.dll, msiexec, etc et trouvé qu'ils étaient tous à 4.5.

Il doit y avoir une valeur de registre ou quelque chose d'autre qui pointe toujours vers 4.05, donc je me demandais s'il y avait un moyen de restaurer en toute sécurité 4.05 et ensuite appliquer la mise à jour à nouveau?

Merci

Répondre

4

La documentation pour InstallerVersion attribut du Wix Package element montre un soupçon (souligné par moi):

La version minimale du programme d'installation de Windows requis pour installer ce package . Prenez la version majeure du requis Windows Installer et multipliez par un 100 puis ajoutez la version mineure de Windows Installer. Pour par exemple, "200" représenterait Windows programme d'installation 2.0 et "405" serait représentent Windows Installer 4.5. Pour Packages Windows Installer 64 bits, cette propriété doit être définie sur 200 ou supérieur.

De plus, si vous y pensez, 4.05 et 4.5 sont exactement les mêmes si vous interprétez le point comme séparateur de nombres plutôt que d'un point décimal. 05 est juste un moyen d'écrire 5 avec deux chiffres dans ce cas.

+0

oh wow merci mec, je n'aurais jamais trouvé cela dans un million d'années :) –

0

Je pense que c'est quelque chose de bizarre passe à l'intérieur WiX et/ou votre registre depuis la partie « 05 » est ni, pour ainsi dire, Microsoft ni méthode généralement reconnue des produits versioning.

+0

Il est assez étrange que je viens d'essayer de mettre à jour une machine Windows XP qui avait 3.0 dessus en utilisant le correctif Windows Installer 4.5, et il a également signalé 4.05. Je pense maintenant s'il serait possible que la propriété VersionMsi elle-même détecte incorrectement 4.5 comme 4.05 –

Questions connexes