У меня довольно простое настольное приложение, которое использует проект установки .NET (MSI-файл) для выполнения установки. При первой установке все происходит своевременно, с хорошей обратной связью для пользователя.
Проблема возникает, когда пользователь устанавливает последнюю версию приложения поверх старой версии на своем компьютере. Недопустимо долгая задержка - около 60–180 секунд с момента, когда диалоговое окно «Добро пожаловать» установщика [Это не диалоговое окно «Добро пожаловать», я удалил его из раздела «Пуск» проекта установки и заменил его на диалоговое окно «CheckBox», чтобы спросить если пользователь хочет ярлык на рабочем столе] исчезает, пока не появится диалоговое окно «Ход выполнения». Пользователь видит минуты на пустом экране и думает, что установка остановлена или не удалась.
В свойствах проекта установки у меня для свойств 'DetectNewerInstalledVersion' и 'RemovePreviousVersions' установлено значение true. Итак, я считаю, что, хотя ничего не происходит, установщик фактически удаляет старую версию. Диалог «Ход выполнения» не появляется, пока новая версия не начнет установку.
Я пытался либо:
a) Отображение диалогового окна «Ход выполнения» сразу после исчезновения диалогового окна «Значок установки»
или
b) Показать другое диалоговое окно во время удаления, чтобы сообщить пользователю, что установка все еще выполняется и все в порядке.
Я потерпел неудачу с обоими методами. Есть идеи?
Я использую VS 2008 SP1