2011-01-11 8 views
7

Ich nehme ja an.Sollte sich der WIX UpgradeCode zwischen einer x64- und einer x86-Version eines Produkts unterscheiden?

Ich habe ein Installationsprogramm für die x86-Version, ich baue das Installationsprogramm für die x64-Version.

Ich versuche herauszufinden, die gotchas. Bis jetzt sieht es ziemlich einfach aus. Ich denke, sie sollten verschiedene UpgradeCodes sein. Ich muss die Eigenschaft VersionNT64 innerhalb einer Condition überprüfen, um die Installation zu validieren.


<Condition Message="This package can be installed only on an x64 version of Windows."> 
    VersionNT64 
</Condition> 

Alle anderen Hinweise?

Antwort

5

Ich würde weitermachen und sagen, dass ja Sie wahrscheinlich verschiedene Upgrade-Codes für die beiden Installateure haben sollten, es sei denn, Sie haben eine spezifische Notwendigkeit, damit sie gleich sind.

Ein Szenario, das ich mir vorstellen kann, wo passende Upgrade-Codes nützlich sein können, ist, wenn Sie zuvor nur eine x86-Version geliefert haben, die auf 32-Bit- und 64-Bit-Betriebssystemen installiert werden konnte. In einem solchen Fall können Sie mit einer x64-Version mit demselben Upgrade-Code problemlos Upgrades von der älteren x86-Version auf die neue x64-Version auf 64-Bit-Betriebssystemen durchführen.

Edit:

Ich vergaß zu erwähnen, dass Sie auch die „Msix64“ Eigenschaft Bitness ermitteln können. Es ist auch nicht notwendig, der x64-Version eine Installationsbedingung hinzuzufügen, da der Versuch, sie in einem 32-Bit-Betriebssystem zu installieren, zu einer Fehlermeldung vom Windows Installer-Dienst führt.

Derzeit eine Bedingung in der x86-Version des Installers ich

nur
<Condition Message="You are attempting to install the x86 version in a 64-bit OS">NOT Msix64</Condition> 
verwenden
0

Aus meiner Erinnerung kann ich sagen, dass der Code für die x86-Version auf dem Code auf einigen 80x86 und späteren Prozessoren für die 16- bis 32-Bit-Versionen basieren würde, während die x64 Code für die 64-Bit-Implementierung wäre es assume ist x64 und nicht IA-64 oder Intel64-Code. Der Lader wäre anders und Sie müssen möglicherweise den Status der Werte im BIOS (falls vorhanden) und einiger Umgebungsvariablen überprüfen, um zu bestimmen, ob der 32- oder 64-Bit-Modus auf einem Computer in Betrieb ist, einschließlich dem, auf dem Sie den Lader entwickeln Es unterstützt einen oder beide Modi.

Verwandte Themen