Запрет удаления ключа реестра Windows при обновлении приложения до новой версии

У меня есть раздел реестра (в кусте HKEY_LOCAL_MACHINE), который нужно сохранить от старой версии приложения до новой, но удалить, когда пользователь полностью удалит мое приложение. Я использую проект установки и развертывания Visual Studio 2010.

Я знаю об увеличении версии сборки пакета установки, версии сборки сборки и обновлении "ProductCode" (но с сохранением "UpgradeCode"). "RemovePreviousVersion" имеет значение true. Проблема в том, что когда пользователь устанавливает новую версию, ключ реестра из предыдущей версии удаляется (с важными данными в нем) и воссоздается заново. Похоже, что MSI удаляет мое приложение перед установкой новой версии. Я пытался установить для "RemovePreviousVersion" значение false, но в этом случае новая версия была установлена ​​независимо, и обе версии приложения появятся на одной машине. Кажется, это очень распространенный сценарий, но я не смог найти, как сохранить ключи реестра между разными версиями. Если вы знаете, как сделать этот модифицирующий MSI-пакет с помощью Orca, это не проблема (поскольку Visual Studio очень ограничена в создании установочных пакетов).

Заранее спасибо.

1 ответ

Решение

Позднее планирование действия RemoveExistingProducts решит вашу проблему.

http://msdn.microsoft.com/en-us/library/windows/desktop/aa371197(v=vs.85).aspx

Другие вопросы по тегам