-
Notifications
You must be signed in to change notification settings - Fork 4
16 updater
drpetersonfernandes edited this page Aug 6, 2026
·
1 revision
Update checking, the Updater.exe flow, restart/reinstall. Related: 04 — Architecture · 15 — Development
SimpleLauncher\Services\UpdateChecker\ (+ CheckForUpdatesService)
-
Silent check at startup: hits
https://api.github.com/repos/{owner}/{repo}/releases/latest(CheckForUpdatesService.cs:89-143) with a timeout so it can never hang the UI. -
Manual check: About window "Check for Updates" (
AboutViewModel→ManualCheckForUpdatesAsync). - Version comparison against the current
5.6.0; new version → prompts to download.
-
release_{version}_{rid}.zip— the new app payload (rid =win-x64/win-arm64). -
updater_{rid}.zip— the standaloneUpdater.exeused when it is not already present.
sequenceDiagram
participant A as App
participant U as Updater.exe
A->>A: ShutdownForUpdateAsync (QuitSimpleLauncher)
A->>U: download fresh Updater.exe from GitHub (if needed) + launch with current PID
A->>A: app exits
U->>U: download release zip, extract over app folder
U->>A: relaunch SimpleLauncher.exe -whatsnew
A->>A: shows UpdateHistoryWindow (release notes)
-
QuitSimpleLauncher(Services\QuitOrReinstall\QuitSimpleLauncher.cs):-
RestartApplicationAsync(:33) — spawns itself with--restarting, then shuts down; failed restart → "FailedToRestart" box, app stays alive. -
SimpleQuitApplication(:70). -
ShutdownForUpdateAsync(:78) — downloads freshUpdater.exefrom GitHub, launches it with the current PID, kills the app.
-
-
ReinstallSimpleLauncher(Services\QuitOrReinstall\ReinstallSimpleLauncher.cs):-
StartUpdaterAndShutdownAsync(:33, async-void) — launches localUpdater.exeor downloads it from GitHub, then hard-exits; access-denied (error 5) → correct message box.
-
-
--restartingskips single-instance enforcement during startup (App.xaml.cs:528);-whatsnewshows the release-notes window (App.xaml.cs:634-651).
Standalone console app (Updater.exe) shipped with each release (version.txt = release5.6.0). Responsibilities: download the release zip for the current RID, extract over the application folder, relaunch the app.
- 04 — Architecture (startup/shutdown lifecycle)
- 15 — Development (release packaging)
- 17 — Release Notes
- Home
- 01 Overview
- 02 Projects And Solution
- 03 Quickstart
- 04 Architecture
- 05 Configuration
- 06 Systems And Launch
- 07 Core Services
- 08 Ui Layer
- 09 Retroachievements
- 10 Game Scanning
- 11 Bundled Tools
- 12 Data Formats
- 13 Logging And Debug
- 14 Testing
- 15 Development
- 16 Updater
- 17 Release Notes
- 18 Emulator Parameters
- Manual Tests
- Parameters