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