Я написал программу, которая обновляет себя, если находит более новую версию на сервере, но мне сложно выполнить ее чисто.
Проверка удаленного сервера и загрузка файла достаточно просты, но что? Он не может просто File.Copy( "newversion.exe", "myprogram.exe" ), потому что моя программа запущена и файл заблокирован.
Я делаю это, загружая два файла newversion и update. Затем myprogram запускает обновление и завершает работу. обновление ждет две секунды, выполняет ли копирование, затем запускает myprogram (которая теперь является обновленной версией) и выходит. myprogram ищет обновление при запуске и удаляет его и newversion, если он их находит. mypogram теперь является новой версией без файлов, оставшихся на месте.
Должен быть лучший способ, чем это, а что .net-путь для самой программы для обновления?
PS. Извините, если этот вопрос появляется дважды - в первый раз, когда я отправил его, у меня была страница с переполнением стека.