# 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` → `<Version>X.Y.Z</Version>` (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.
