В WiX, если у меня есть разные идентификаторы продукта для 32- и 64-битных версий - PullRequest
6 голосов
/ 28 сентября 2011

Я пишу установщик WiX с общим набором источников WiX для 32-битной и 64-битной версий продукта.

Вопрос в том, использовать ли разные идентификаторы продуктов для разных версий?

Ответы [ 2 ]

6 голосов
/ 28 сентября 2011

Чтобы ответить на мой собственный вопрос, который, как оказалось, был на самом деле неправильным, документация MSDN для свойства ProductCode гласит:

32-битные и 64-битные версииПакету приложения должны быть назначены разные коды продуктов.

Оказывается, меня смутило то, что я думал, что код продукта никогда не должен меняться.Это не верно.Опять же:

Свойство ProductCode является уникальным идентификатором для конкретного выпуска продукта.Этот идентификатор должен отличаться для разных версий и языков.

3 голосов
/ 28 сентября 2011

Во-первых, я хотел бы сделать такую ​​защиту для 32-битного установщика:

<Condition Message="This installer does not support 64-bit Windows! ">
  <![CDATA[NOT VersionNT64]]>
</Condition>

и это для 64-битного установщика:

<Condition Message="This installer does not support 32-bit Windows! ">
  <![CDATA[VersionNT64]]>
</Condition>

Но вернемся к вашему вопросу. Я рекомендую установить для Product Id значение "*". Это гарантирует, что каждая сборка создает новый GUID. Вы всегда можете найти этот GUID, если хотите создать патч, используя Orca.

Важным значением является UpgradeCode. Этот GUID создает связь между версиями. Я порекомендую один UpgradeCode для всех ваших 32-битных инсталляторов и другой UpgradeCode для всех вас, 64-битных инсталляторов.

...