MSI обновить и сохранить ключи реестра?
У нас есть продукт, 1.0, в этой области. Я пытаюсь обновить установщик для этого продукта, чтобы он мог установить поверх старой версии, чтобы установить новую версию 2.0. Я использую проект установки Visual Studio 2010, чтобы сделать это.
Я сохранил код UpgradeCode и установил для удаления более ранние версии значение true, и новый установщик успешно установит поверх старой, удалив старую.
Тем не менее, похоже, что удаление старого MSI происходит после установки нового MSI. Оба MSI используют одни и те же ключи реестра (поскольку наш код, который их использует, не изменился)... но это означает, что при удалении старого MSI эти ключи реестра удаляются. И так как это удаление происходит после установки нового MSI... эти ключи просто исчезли.
Есть ли простой способ предотвратить это? Это похоже на вполне нормальный вариант использования, но я не могу понять, как я должен поддерживать эти ключи реестра, если старый установщик удаляет их.
Изменить: Итак, я выяснил, как переместить шаг RemoveExistingProduct ранее в процессе. И я дважды проверил - да, в VS2005 это было сделано первым, в 2010 году это было сделано почти последним. Я не уверен, как они ожидают, что это сработает, если старый деинсталлятор удаляет вещи, которые добавляет новый установщик... в любом случае, это просто вопрос получения Orca и редактирования порядкового номера шага.
1 ответ
Похоже, вам может понадобиться поместить действие RemoveExistingProducts в последовательность установки - возможно, в действие InstallValidate.
Боюсь, я не знаю, как это сделать с помощью Visual Studio - я использую Advanced Installer, потому что я обнаружил, что он предоставляет гораздо более простой интерфейс для создания и управления установочными пакетами.