# PS_Launcher — Installeur Génère un setup Windows (`PSLauncher-Setup-{version}.exe`) qui distribue le launcher principal + son updater dans `Program Files\ASTERION VR\PSLauncher\`. ## Pré-requis - **.NET 8 SDK** (déjà installé pour build le projet) - **Inno Setup 6.x** — https://jrsoftware.org/isdl.php (gratuit, ~6 Mo) ## Build en une commande Depuis la racine du repo : ```powershell powershell -ExecutionPolicy Bypass -File installer\build-installer.ps1 ``` Ça enchaîne : 1. `dotnet publish src/PSLauncher.App -c Release` → `PSLauncher.exe` (~77 Mo) 2. `dotnet publish src/PSLauncher.Updater -c Release` → `PSLauncher.Updater.exe` (~10 Mo) 3. `ISCC PSLauncher.iss` → `installer/output/PSLauncher-Setup-X.Y.Z.exe` Le fichier final fait ~80 Mo (compression ultra Inno + binaires self-contained). ## Distribution Tu balances **un seul `.exe`** au client : - Il lance, choisit français/anglais, clique Suivant×3, c'est installé. - Raccourci bureau + menu Démarrer créés. - Désinstallation propre via Programmes et fonctionnalités. Le cache utilisateur (`%LocalAppData%\PSLauncher\config.json`, logs, downloads partiels) n'est **pas** touché par l'install/désinstall — la license et les paramètres survivent. ## Mise à jour du launcher Le launcher se met à jour seul via `PSLauncher.Updater.exe` (cf. flow auto-update). Le client n'a pas besoin de rejouer l'installeur sauf changement majeur (TFM, déps). ## Bumper la version Avant de rebuild un installeur : 1. `src/PSLauncher.App/PSLauncher.App.csproj` → `X.Y.Z` (et AssemblyVersion / FileVersion) 2. `installer/PSLauncher.iss` → `#define MyAppVersion "X.Y.Z"` 3. `installer/build-installer.ps1` Côté serveur, mets aussi à jour `manifest/versions.json` section `launcher` avec la nouvelle version + URL de download du nouveau `PSLauncher.exe` (via le backoffice ou édition manuelle, puis `php tools/sign-manifest.php`). ## Code-signing (optionnel) Pour éviter le warning SmartScreen "éditeur inconnu", il faut signer `PSLauncher.exe`, `PSLauncher.Updater.exe` et `PSLauncher-Setup-X.Y.Z.exe` avec un certificat Authenticode (OV ~250 €/an, EV ~400 €/an, ou gratuit via SignPath pour OSS). Hors-scope du script actuel.