Files
MrMahoandClaude Opus 5.5 c7a30e7fa3 Auto-Update wie beim MSCO Launcher
Beim Start installiert sich ein neuer Launcher sofort selbst (Fortschrittsfenster, Neustart), neue
BSO-Versionen kommen nach dem Anmelden - beides abschaltbar. Einstellungen: Nach Updates suchen /
Installieren und neu starten. Updates wieder nur von der Website; dotnet publish laedt hoch (release.ps1).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 21:19:48 +01:00

4.2 KiB
Raw Permalink Blame History

BSO Launcher

Launcher für BSO – Bus Simulator Online (Multiplayer-Mod für Bus-Simulator 2012), aufgebaut wie der MSCO Launcher: WinForms-Fenster mit WebView2, die Oberfläche (ui\) ist in der .exe eingebettet.

Features

  • Setup-Assistent: Die heruntergeladene BSO-Launcher-Setup.exe (dieselbe signierte Datei wie der Launcher) fragt nach Sprache, Ordner (Standard %LocalAppData%\Programs\BSO Launcher, nur Ordner ohne Admin-Rechte) und Verknüpfungen (Desktop, Startmenü), installiert mit Fortschrittsanzeige und trägt sich unter Einstellungen → Apps ein. Ist dieselbe oder eine neuere Version installiert, bietet es Starten an. --portable startet ohne Installation.
  • BSO-Konto: Registrieren und Anmelden bei der BSO-Website. Die Anmeldung bleibt 30 Tage (Token DPAPI-verschlüsselt). Der Kontoname ist der Name im Spiel.
  • Auto-Update (wie MSCO): Beim Start installiert sich ein neuer Launcher sofort selbst und startet neu; neue Mod- Versionen kommen beim Start und vor jedem Spielstart (beides abschaltbar). Einstellungen: Nach Updates suchen. Downloads sind fortsetzbar, SHA-256-geprüft und müssen mit dem BSO-Release-Schlüssel signiert sein.
  • Prüft alles: Spielordner (alle Steam-Bibliotheken), BSO-Version, .NET 10 Runtime (braucht die Mod).
  • Freunde & Lobby: Freunde per Benutzername hinzufügen (online-Anzeige), Lobby erstellen, einladen - SPIELEN des Erstellers startet den Lobby-Server. Der Server läuft im BSO-Relay – niemand hostet, niemand braucht eine Portfreigabe.
  • SPIELEN: holt ein Spiel-Ticket (in der Lobby: für deren Server) und die Relay-Adresse, schreibt beides in BSO.json, startet Bus-Simulator 2012 über Steam und verbindet automatisch.
  • Mod herunterladen holt jederzeit die neueste Mod.
  • Neuigkeiten (Changelogs), Einstellungen, Deinstallieren.

Bauen und veröffentlichen

dotnet publish -c Release -o publish   # bauen - und die neue Version gleich auf https://bso.mbm.wtf laden

Wie bei MSCO: dotnet publish ruft release.ps1 auf – signiert die .exe und lädt sie mit Changelog (Abschnitt ## <Version> aus CHANGELOG.md) auf die Website. Gibt es die Version schon, passiert nichts; also Version in der .csproj erhöhen und bauen. BSO_NO_RELEASE=1 baut nur. Der Launcher holt seine Updates von der Website.

Gegen die lokale Test-Website (-dev)

BSO-Launcher.exe -dev            # nimmt http://localhost:5080 statt https://bso.mbm.wtf
  • -dev bleibt beim Selbst-Installieren und beim Selbst-Update erhalten; die installierte Kopie startet man genauso: "%LocalAppData%\Programs\BSO Launcher\BSO-Launcher.exe" -dev.
  • Eigene Anmeldung (settings.dev.json) – Test- und echtes Konto kommen sich nicht in die Quere.
  • Gelbes DEV-Schild in der Titelleiste, im Fenstertitel und unter dem Anmelden-Formular steht die Adresse.
  • Beliebiger anderer Server: Umgebungsvariable BSO_LAUNCHER_API (geht vor -dev).

Lokale Website starten: im BSO-Website-Repo dotnet run --urls http://localhost:5080.

Release-Schlüssel

Geheimnisse liegen DPAPI-verschlüsselt unter %USERPROFILE%\.bso\ (wie .msco bei MSCO):

Datei Einrichten
Release-Token (RELEASE_TOKEN der Website) release-token.dpapi release.ps1 -SaveToken (oder BSO_RELEASE_TOKEN)
Signier-Schlüssel (RSA 3072) release-signing-key.dpapi release.ps1 -ImportSigningKey <sicherung>

Sicherung: release.ps1 -ExportSigningKey <datei> (AES-256, eigenes Passwort). Ein ganz neues Paar nur im Notfall: new-release-key.ps1 (trägt den öffentlichen Teil in Services\ReleaseSignature.cs ein).

Den Schlüssel sichern: Mit einem neuen Schlüssel erkennen bereits verteilte Launcher keine Updates mehr.

Daten

Was Wo
Einstellungen, Anmeldung %LocalAppData%\BSO Launcher\settings.json
Protokoll %LocalAppData%\BSO Launcher\launcher.log
Mod <Spielordner>\Bin_High_Win64\dinput8.dll und BSO\