Главное обновление WiX не запускается, когда я удаляю модуль объединения из проекта - PullRequest
1 голос
/ 03 августа 2010

У меня есть проект WiX, который включает установку компонентов среды выполнения Visual C ++ 2008 для x86 с отдельным модулем слияния.

К сожалению, существует хорошо известная проблема с этим MSM в MSI v4.5. Чтобы быть более точным, пользовательское действие .msm SxSUninstallCA занимает 20 минут при удалении.

Итак, короче говоря, я решил удалить MSM из новой версии продукта, установив компоненты VC ++ с файлом .exe в автоматическом режиме.

Если я изменю только эту вещь (и, конечно, ProductCode), установщик не обнаружит уже установленный продукт на компьютере и выполнит обычную установку, не удалив сначала старую версию.

Есть идеи о том, что здесь происходит? Следует ли MSI проверять наличие UpgradeCode и ProductCode, чтобы определить, является ли продукт обновлением другого, уже установленного в системе?

Ответы [ 3 ]

2 голосов
/ 28 ноября 2011

Убедитесь, что свойство ALLUSERS установлено одинаково в обоих установщиках. У меня была такая же проблема с модулями слияния, и это решило ее.

1 голос
/ 03 августа 2010

Если вы хотите, чтобы новый MSI обновил старый MSI (и вам нужно использовать Major Upgrade, потому что вы удаляете компоненты), тогда да, вам нужно использовать элементы UpgradeCode и Upgrade (или в WiX v3.5 вы можно использовать новый элемент MajorUpgrade).

Если вы предоставите более подробную информацию о том, что находится в ваших файлах .wxs, я могу быть более конкретным.

0 голосов
/ 03 августа 2010

Проект настроен на использование UpgradeCode и ProductCode для обнаружения обновления уже.Например: я создаю MSI-файл с:

ProductCode="05406C5C-8D66-4779-AECA-A93B18729ED5"  
UpgradeCode="05B87404-548E-4BEA-9621-FBF9459F25B0"  
PackageCode="*"  
Version="1.1.1"  

. Этот MSI-файл содержит файлы и папки для установки, а также модуль слияния Microsoft_VC90_CRT_x86.msm.

Затем я создаю другой.msi со следующими параметрами

ProductCode="7F626A0C-5E69-496D-999E-8E2B14C01FE6"  
UpgradeCode="05B87404-548E-4BEA-9621-FBF9459F25B0"  
PackageCode="*"   
Version="1.1.2"  

Те же файлы, модуль слияния еще включен: работает, приложение обновляется (удалял предыдущую версию, устанавливал новую версию).В тот момент, когда я комментирую каждую отдельную ссылку на Microsoft_VC90_CRT_x86.msm, встроенный установщик не обнаруживает предыдущую версию приложения.

...