Files
PS_Launcher/installer
j.foucher 5b489dcfc5 Installer v1.0.3 : bundle WebView2 Runtime Bootstrapper
Bug rapporté : sur un poste client fraîchement installé sans Microsoft
Edge WebView2 Runtime (typique sur Windows Server, Win10 sans MAJ
récente, ou install corporate stripped down), la fenêtre du launcher
restait toute blanche au démarrage. Les contrôles WebView2 (utilisés
pour les onglets Reports et Documentation) tentent de s'initialiser
au render de MainWindow, échouent en silence faute de runtime, et la
fenêtre WPF reste vide visuellement.

Fix : on bundle le bootstrapper WebView2 (MicrosoftEdgeWebview2Setup.exe,
1.6 MB, redistribuable Microsoft) dans le setup. À l'install, un check
registre (3 emplacements : HKLM x64, HKLM x86, HKCU) détecte si le
runtime est déjà présent. S'il manque, on lance le bootstrapper en
silencieux qui télécharge ~150 MB depuis Microsoft et installe.

Si le téléchargement échoue (poste offline, firewall corporate qui
bloque go.microsoft.com), on ne fail PAS le setup global — le launcher
sera installé sans WebView2, le user verra le bug visuel et pourra
installer manuellement le runtime depuis Microsoft. Trade-off vs forcer
l'install qui pourrait bloquer indéfiniment des admins en offline.

Téléchargé depuis : https://go.microsoft.com/fwlink/p/?LinkId=2124703

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-26 08:35:39 +02:00
..

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

Build en une commande

Depuis la racine du repo :

powershell -ExecutionPolicy Bypass -File installer\build-installer.ps1

Ça enchaîne :

  1. dotnet publish src/PSLauncher.App -c ReleasePSLauncher.exe (~77 Mo)
  2. dotnet publish src/PSLauncher.Updater -c ReleasePSLauncher.Updater.exe (~10 Mo)
  3. ISCC PSLauncher.issinstaller/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.