2015-08-04 3 views
1

Я использую WIX для создания нового установщика для существующего продукта. Установщик очень прост - просто отбрасывает несколько dll в указанную папку на диске.WIX: Как удалить предыдущий MSI, построенный с использованием VS * .vdproj

В поле мои пользователи уже имеют эту папку со старыми dll в них (поскольку они установили старый MSI, созданный с использованием проекта * .vdproj в VS).

Моя проблема в том, что после установки WIX у меня есть как старый MSI, так и новый Wix MSI, которые появляются в «Добавить/Удалить». Ожидаемый (? Поскольку эти 2 являются двумя разными типами MSI?). Мне нужен какой-то механизм обновления, поэтому мне было интересно, могу ли я вызвать старый деинсталлятор MSI из WIX. Или поочередно каким-то образом позаботиться о старой записи «Добавить/удалить» (возможно, перехват реестра)?

ответ

2

Предполагая, что старая установка и новая установка установлены с использованием одного и того же контекста (для каждого пользователя -> для каждого пользователя или для каждой машины -> для машины) вы можете использовать правило MajorUpgrade, чтобы найти старую версию и избавиться от нее. Вы можете сделать это, синхронизируя свойство UpgradeCode и используя более высокую ProductVersion, или вы можете сделать это, создав второе правило обновления с использованием устаревшего GUID UpgradeCode.

Если старая установка была для каждого пользователя и вы хотите, чтобы новая установка была на компьютере, вам не повезло. Это не поддерживается MSI. Обычно я поддерживаю только установки и жесткие коды для свойства ALLUSERS и удаляет диалоговое окно CustomerInformation из опыта пользовательского интерфейса установщика. Это не является стандартным для установщиков, основанных на VDPROJ.

+0

Спасибо. Я буду исследовать, как сделать подход MajorUpgrade, поскольку WIX для меня новичок. – user350213

+0

Кристофер, можете ли вы подробнее остановиться на этом: «Это можно сделать, синхронизируя свойство UpgradeCode и используя более высокую ProductVersion, или вы можете сделать это, создав второе правило обновления с использованием устаревшего GUID UpgradeCode»? Учитывает ли этот подход, что старый MSI не является WIX? – user350213

+1

Ох .. когда вы говорите «синхронизировать UpgradeCode», вы имеете в виду, что новый Wix UpgradeCode соответствует старому? – user350213

Смежные вопросы