Как сделать так, чтобы одно исправление предназначалось для нескольких MSI с разными кодами продуктов?

У меня есть 64-битная и 32-битная версии продукта MSI. Для того, чтобы эти релизы рассматривались как независимые продукты, чтобы, например, 64-битный патч не был случайно применен поверх 32-битного релиза MSI, и наоборот, я присвоил им разные коды продуктов. Тем не менее, я также хотел бы иметь один единственный патч, применимый как к 32-битным, так и к 64-битным, поскольку все, что я исправляю, - это dll и иногда exe.

В настоящее время я создаю свои несжатые файлы MSI с помощью InstallShield, но исправляю их с помощью WiX PatchCreation. я пытался использовать

<TargetProductCode Id="*"/>

однако это не изменило моего поведения. В настоящее время я получаю the upgrade patch cannot be installed..the program to be upgraded may be missing.., что имеет смысл.

Какова наилучшая практика для решения этой проблемы? Должен ли я просто сделать одинаковыми коды продуктов между двумя 32-разрядными и 64-разрядными выпусками?


person JohnZaj    schedule 21.01.2015    source источник


Ответы (1)


32-битный MSP может исправлять только 32-битный MSI. То же самое для 64 бит. Да, у меня были бы разные UpgradeCode и ProductCodes для двух установщиков. Если вы хотите, чтобы патч выглядел как 1 патч, вы можете обернуть его в загрузчик Burn. Пользователь запустит EXE-файл, и будет применен правильный патч.

person Christopher Painter    schedule 21.01.2015