2016-08-20 8 views
0

У нас есть пользовательский установщик загрузочного буфера WIX. Цепочки пучков загрузочного буфера 3 отдельных приложения msi. Пользовательский пользовательский интерфейс Bootstrapper позволяет пользователю выбирать, какое приложение устанавливать и на основе выбора пользовательского загрузочного устройства будет устанавливать его msi.Удаление приложения с использованием более поздней версии msi

Теперь рассмотрим сценарий. Приложение, скажем, версия A1 версии 1.0.0.50 установлена ​​в системе. Предположим, что версия bootstrapper также 1.0.0.50

Предположим, что доступна следующая версия установщика bootstrapper с некоторыми обновлениями, предположим, что его версия 1.0.0.51. С помощью этого я хочу установить второе приложение, скажем, A2. Также я хочу удалить A1. В настоящее время мы поддерживаем обновление версии A1 до версии 1.0.0.51 с помощью этого последнего установщика.

Но я хочу проверить возможность удаления A1 с использованием последней версии bootstrapper. Как его реализовать? Поскольку согласно нашим требованиям к проекту, конечный пользователь должен иметь возможность удалить A1 с использованием любой версии загрузочного устройства.

Я видел в реестре он хранит Uninstallstring для каждого msi. Если я запустил значение uninstallstring, например, MsiExec.exe/X {90140000-0011-0000-0000-0000000FF1CE} Будет ли он точно выполнять то, что делается с помощью msi uninstall? будет ли он обрабатывать записи в записи реестра, удалять установленные файлы и т. д.?

ответ

0

Не переходите в реестры для этого. В базе данных MSI есть таблица обновлений, которая, мы надеемся, выполнит ваше требование (https://msdn.microsoft.com/en-us/library/windows/desktop/aa372379(v=vs.85).aspx). Добавьте запись с обновленным кодом установленной MSI, укажите границы версий в VersionMin & VersionMax, установите атрибут 769 или что-то еще в зависимости от вашего требования, создайте новое публичное свойство и добавьте его в SecureCustomProperties. Наконец, во время установки разрешите ведение журнала Windows и проверьте журналы для стандартных действий, таких как findrelatedproducts и removeexistingproducts, если у вас возникнут какие-либо проблемы.

+0

Благодарим вас за ответ. Можете ли вы подробно рассказать об этом с помощью примера. Например, я не очень хорошо разбирался в настройке атрибутов и защищенных свойствах cutom. – user3663551

+0

Текущая таблица обновления в моем MSIS являются user3663551

+0

правильно ли это? Переход на более высокую версию работает нормально. Во время обновления он удаляет старую версию и устанавливает новую версию. Но вместо обновления Если я просто хочу удалить, он не делает этого – user3663551