Должен ли WIX UpgradeCode отличаться в x64 и x86 версии продукта? - PullRequest
7 голосов
/ 11 января 2011

Я предполагаю, ДА.

У меня есть установщик для версии x86, я собираю установщик для версии x64.

Я пытаюсь выяснить ошибки. Пока это выглядит довольно просто. Я чувствую, что они должны быть разными UpgradeCodes. Мне нужно проверить свойство VersionNT64 в условии, чтобы подтвердить установку.


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

Есть еще какие-нибудь подсказки?

Ответы [ 2 ]

5 голосов
/ 11 января 2011

Я бы сказал, что да, у вас должны быть разные коды обновления для двух инсталляторов, если вам не требуется, чтобы они были одинаковыми.

Один сценарий, который я могу придумать, где могут пригодиться соответствующие коды обновления, - это если вы ранее поставляли только версию x86, которую можно было установить как в 32-разрядных, так и в 64-разрядных операционных системах. В таком случае наличие версии x64 с тем же кодом обновления позволит вам легко выполнять обновления с более старой версии x86 до новой версии x64 в 64-разрядных операционных системах.

Edit:

Я забыл упомянуть, что вы также можете использовать свойство "Msix64" для определения битности. Также нет необходимости добавлять условие установки в версию x64, так как попытка установить его в 32-разрядной ОС приведет к сообщению об ошибке от службы установщика Windows.

В настоящее время я использую только одно условие в x86-версии установщика

<Condition Message="You are attempting to install the x86 version in a 64-bit OS">NOT Msix64</Condition>
0 голосов
/ 11 января 2011

Насколько я помню, я могу сказать, что код для версии x86 будет основан на коде, используемом на некоторых процессорах 80x86 и более поздних для версий от 16 до 32 бит, в то время как x64 будет другим кодом для 64-битной реализации, при условии, что этоx64, а не код IA-64 или Intel64.Загрузчик будет другим, и вам может потребоваться проверить состояние значений в BIOS (если оно есть) и некоторые переменные среды, чтобы определить, работает ли на компьютере 32- или 64-разрядный режим, включая тот, на котором вы разрабатываете загрузчик, еслион поддерживает один или оба режима.

...