Записи таблицы свойств 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, чем ранее установленный продукт.