2012-02-07 4 views
1

Я использую программу под названием MSICREATE для генерации пакетов msi для части программного обеспечения. Затем я использую orca для преобразования пакета msi. Все работает нормально, но пользователи должны удалить существующий продукт перед установкой обновления. Я хотел бы изменить пакет msi, чтобы установщик узнал, что установлена ​​более новая или другая версия, и удаляет текущую версию, а затем устанавливает новый msi-пакет.Записи таблицы свойств пакета MSI для включения обновлений обновлений

Какие записи таблицы свойств необходимы?

=========

Ответ дается ниже помогли мне выйти за пределы моей первоначальной проблемы, и я благодарю Киприан за помощь. Мое главное обновление msi теперь удаляет существующий продукт, но не полностью переустанавливает продукт. Мой продукт состоит из некоторых текстовых файлов, файла справки и файла .exe. Файл .exe не переустановлен.

Что бы это ни стоило, я добавил ответ ниже, в котором суммируется то, что я добавил в свой msi, используя orce.

+0

Создайте журнал установки для получения дополнительной информации: http://stackoverflow.com/questions/7126077/create-an-msi-log-file – Ciprian

+0

@ciprian: Возможно, я не изменил PackageCode. Это необходимо? Я попробую еще раз после обеда. –

+0

Нет, это не требуется. PackageCode однозначно идентифицирует файл MSI, поэтому он должен отличаться, но он не влияет на процесс обновления. – Ciprian

ответ

2

Я не знаю, как MSICREATE обрабатывает сценарий обновления. Однако вы можете достичь этого, используя ORCA. Here - подробный пример обновления из MSDN.

Короче говоря, оба ваших пакета должны делиться UpgradeCode. Также вы должны авторизовать запись в Upgrade table второго пакета.

0

Вот что я добавил в свой msi, используя orca, чтобы произвести серьезное обновление. Как я уже сказал выше, у меня все еще есть проблема в том, что мой .exe-файл не переустанавливается при основном обновлении. Если вы делаете ремонт, добавляется .exe.

InstallExecuteSequence Таблица

  • добавлены FindRelatedProducts с последовательностью 400
  • добавлены RemoveExistingProducts с последовательностью 1450

InstallUISequence Таблица

  • добавили FindRelatedProducts с последовательностью 200

PropertyTable

  • добавил RemovePreviousVersions ИСТИНА
  • добавил SECURECUSTOMPROPERTIES SOLARUPGRADE
  • имел существующий UpgradeCode с GUID, созданный MSICREATE
  • имел существующий ProductVersion 12.2.12.0 создал свой MSICREATE

Добавлен стол обновления

  • UpgradeCode такое же значение, как Upgrade в таблице свойств
  • VersionMin нулевой
  • VersionMax 99,12.31
  • Атрибуты 1
  • ActionProperty SOLARUPGRADE (такое же значение, как SECURECUSTOMPROPERTIES в таблице свойств)

Я также назначен новый PackageCode и новый ProductCode поэтому новый MSI имели разные значения PackageCode, ProductCode и ProductVersion, чем ранее установленный продукт.

Смежные вопросы