Записи таблицы свойств MSI для включения обновлений обновлений
Я использую программу под названием MSICREATE для генерации пакетов msi для части программного обеспечения. Затем я использую orca для преобразования пакета msi. Все работает нормально, но пользователи должны удалить существующий продукт перед установкой обновления. Я хотел бы изменить пакет msi, чтобы установщик узнал, что установлена более новая или другая версия, и удаляет текущую версию, а затем устанавливает новый msi-пакет.
Какие записи таблицы свойств необходимы?
=========
Ответ, приведенный ниже, помог мне выйти за рамки моей первоначальной проблемы, и я благодарю Чиприана за его помощь. Мое главное обновление msi теперь удаляет существующий продукт, но не полностью переустанавливает продукт. Мой продукт состоит из некоторых текстовых файлов, файла справки и файла .exe. Файл .exe не переустановлен.
Что бы это ни стоило, я добавил ответ ниже, в котором суммируется то, что я добавил в свой msi, используя orce.
Ответы
Ответ 1
Я не знаю, как MSICREATE обрабатывает сценарий обновления. Однако вы можете достичь этого, используя ORCA. Здесь - подробный пример обновления из MSDN.
Короче говоря, оба пакета должны делиться UpgradeCode. Также вы должны написать запись в Обновить таблицу второго пакета.
Ответ 2
Вот что я добавил в свой msi, используя orca, чтобы произвести серьезное обновление. Как я уже сказал выше, у меня все еще есть проблема в том, что мой .exe файл не переустанавливается при основном обновлении. При выполнении ремонта добавляется .exe.
Таблица InstallExecuteSequence
- добавил FindRelatedProducts с последовательностью 400
- добавлено RemoveExistingProducts с последовательностью 1450
Таблица InstallUISequence
- добавлены FindRelatedProducts с последовательностью 200
PropertyTable
- добавлено RemovePreviousVersions TRUE
- добавлено SECURECUSTOMPROPERTIES SOLARUPGRADE
- имел существующий код UpgradeCode с guid, созданный MSICREATE
- имел существующий ProductVersion 12.2.12.0, созданный мой MSICREATE
Добавлена таблица обновления
- UpgradeCode такое же значение, как и обновление в таблице свойств
- VersionMin null
- VersionMax 99.12.31
- Атрибуты 1
- ActionProperty SOLARUPGRADE (то же значение, что и SECURECUSTOMPROPERTIES в
Таблица свойств)
Я также назначил новый PackageCode и новый ProductCode, так что новый msi имел разные значения PackageCode, ProductCode и ProductVersion, чем ранее установленный продукт.