Итак, в основном у вас есть приложение, которое «самообновляется».Ваше основное приложение вызывает программу обновления, которая находит и находит установщик и запускает его.Затем запускается установщик, который может легко заменить сборку, которая называется программой обновления, и программу обновления.После завершения установки вы перезапустите приложение.
Вы можете (и .NET делает по умолчанию) использовать оболочку ОС для запуска нового процесса.Этот процесс не будет связан с его родителем;если, например, вы создали исполняемый файл, единственной целью которого было открыть Блокнот, ваш исполняемый файл будет вызывать Process.Start («notepad.exe»), Блокнот откроется, и ваш процесс закроется, оставив Блокнот открытым.1004 * Чтобы убедиться, что ваше приложение закрыто, вы можете использовать Process.GetProcesses () в установщике, который получит список процессов, которые вы увидите с помощью диспетчера задач.Сканируйте список на предмет имени исполняемого файла вашего приложения (и, если применимо, средства обновления);если он существует, попробуйте поспать секунду, затем попробуйте снова.Все еще там?Предупредите пользователя о необходимости вручную закрыть приложение, а затем, когда он скажет, что оно есть, проверьте еще раз.