Пусковые установки чаще всего встречаются в играх. Подумайте о Лиге Легенд, Starcraft II или почти любой MMO. Перед началом реальной игры у вас есть небольшое приложение для запуска, которое заботится о обновлениях и исправлениях.Как само приложение запускает обновление?
Я хочу двигаться в этом направлении с помощью определенного не-игрового приложения, которое я разрабатываю. Концепция пусковой установки имеет прекрасный смысл: она проверяет наличие обновлений, заменяет соответствующие бинарные файлы/библиотеки, может запускать проверку целостности и запускает приложение. Однако, как пусковые установки обновляют себя? Это, как правило, редкое событие, но как это делается? Разве пусковая установка буквально просто пишет по самой двоичной системе, из которой она сейчас работает? Или есть какой-то шаг подкачки после загрузки? Мне нужно иметь возможность выталкивать (редкие) обновления для запуска (особенно, если я обнаруживаю ошибку в моей пусковой установке).
Мой конкретный проект будет в C#, но меня интересуют концептуально похожие C++ и/или Java-решения, а также для дальнейшего использования.
Как только программа загружается в память, на самом деле не стоит заботиться о том, что происходит с бинарным файлом изображения, откуда вы пришли, поэтому вам должно быть позволено перезаписать это. Тогда все, что вам нужно сделать, это перезапустить программу, возможно, с чем-то вроде 'exec'. –
@ KerrekSB Звучит достаточно просто. Тем не менее, я все еще немного нечеткий. Итак, запустите программу в отдельном процессе, а затем просто выйдите из нее? – TheBuzzSaw
@KerrekSB, Windows блокирует исполняемый файл во время его работы. Частично потому, что некоторые разделы могут не загружаться сразу. –