MSI установщик не предлагает пользователю при обновлении - PullRequest
1 голос
/ 08 мая 2011

У меня есть простой установщик msi setup.exe (созданный через VS2010). В первой установке все в порядке, проблема во второй установке: 1. Параметры msi: a.RemovePreviousVersions установлено в TRUE.2. Я обновил номер версии установки (для второй установки), а затем нажал OK, когда меня спросили, хочу ли я обновить код продукта.

В этот момент я перекомпилировал MSI и дважды щелкнул файл setup.exe.,Проблема: я ожидаю, что установщик обнаружит, что уже установлена ​​предыдущая версия, и спросит меня, хочу ли я удалить \ обновить ее.что происходит, когда установщик автоматически обновляет установленный продукт до новой версии, ничего не спрашивая ...

Есть ли способ настроить проект msi, чтобы он отображал экран "Обновление \ удаление"????

Большое спасибо ..

Ответы [ 2 ]

1 голос
/ 09 мая 2011

Я не использовал VS Installer, но он строго ограничен. Технически ваш пакет обновления должен иметь

  1. Новый код товара
  2. Тот же код обновления, что и у вашего предыдущего продукта

Вам также необходимо добавить FindRelatedProducts и RemoveExistingProducts в таблицу InstallE в правильном порядке. Вы можете добавить некоторые графические элементы MSI поверх него, но это будет означать, что вам придется редактировать MSI вручную с помощью редактора Orca. Более простым подходом может быть использование инструментария Wix , где у вас больше свободы. На ваш вопрос уже был дан ответ там .

1 голос
/ 09 мая 2011

Я нашел эту статью очень полезной.В частности:

• Если новый файл MSI имеет тот же ProductCode и PackageCode, что и продукт, который уже установлен, Windows указывает, что вы должны восстановить или удалить продукт

enter image description here

Удалить удаляет продукт, но ремонт может быть более запутанным.

Repair не использует ваш новый MSI-файл для восстановления продукта, а также не обновляет ранее установленное вами.Вместо этого он восстанавливает существующий установленный продукт.Таким образом, он ведет себя так, как будто вы перешли к исходному MSI-файлу, который использовался для установки существующего продукта, выбрали контекстное меню и выбрали восстановление.(Примечание. Восстановление также можно запустить из программы «Установка и удаление программ».)

• Если новый файл MSI имеет тот же ProductCode, что и установленный продукт, но другой PackageCode, вы получите сообщение о том, что другая версияпродукта уже установлен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...