Files
MSCO/RELEASING.md
T
MrMahoandClaude Opus 5.5 fe08fa5213 Release from Windows or Mac
- MSCO.csproj is SDK-style now (net35 via Microsoft.NETFramework.ReferenceAssemblies):
  builds with "dotnet build -c Release" on Windows and macOS; game DLL folder via
  MSC_MANAGED / -p:MscManaged (default: the game folder). Output verified identical
  in structure (references, types, methods, resources) to the old project.
- release.ps1 works with Windows PowerShell 5.1 and PowerShell 7: secrets in DPAPI files
  on Windows, in the macOS keychain on a Mac (file with chmod 600 on Linux); cross-platform
  RSA/password input; release target calls pwsh on non-Windows
- RELEASING.md: how to release and how to set up the Mac

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 21:22:04 +02:00

3.5 KiB
Raw Blame History

Updates veröffentlichen (Mod & Launcher)

Neue Versionen der Mod und des Launchers landen beim Bauen automatisch auf dem Keymaster (release.ps1). Jede Datei wird dabei mit dem privaten Release-Schlüssel signiert – der Launcher und das Setup installieren nur signierte Dateien. Dafür braucht der Rechner, auf dem gebaut wird, zwei Geheimnisse:

Windows macOS
Release-Token (Keymaster RELEASE_TOKEN) %USERPROFILE%\.msco\release-token.dpapi (DPAPI) Schlüsselbund: MSCO release-token
Signier-Schlüssel (RSA-3072) %USERPROFILE%\.msco\release-signing-key.dpapi (DPAPI) Schlüsselbund: MSCO release-signing-key

Sicherung des Schlüssels: \\mbmnas\mrmaho\MSCOModBackupData\msco-signing-key-backup.txt (AES-256, eigenes Passwort – das Passwort nicht auf dem NAS speichern).

Ablauf

  1. Version erhöhen: Mod in MSCO.cs (ModVersion), Launcher in MSCO.Launcher.csproj (<Version>) – und den Abschnitt ## <Version> in der jeweiligen CHANGELOG.md (wird zum Changelog auf der Website/im Launcher).
  2. Bauen:
    • Mod: im Ordner MSCO → dotnet build -c Release
    • Launcher: im Ordner MSCO.Launcher → dotnet publish -c Release
  3. Die Ausgabe zeigt MSCO release: mod 2.x.y uploaded to https://msco.mbm.wtf. Gibt es die Version schon, passiert nichts. MSCO_NO_RELEASE=1 (Umgebungsvariable) baut, ohne hochzuladen.
  4. Code committen und pushen.

Einrichten auf Windows

Läuft schon (Token und Schlüssel liegen in %USERPROFILE%\.msco). Neuer PC:

powershell -ExecutionPolicy Bypass -File MSCO\release.ps1 -SaveToken
powershell -ExecutionPolicy Bypass -File MSCO\release.ps1 -ImportSigningKey \\mbmnas\mrmaho\MSCOModBackupData\msco-signing-key-backup.txt

In einem PowerShell-Fenster ohne „Als Administrator ausführen“ – sonst sind Netzlaufwerke wie Z: nicht da (der Pfad \\mbmnas\mrmaho\… geht in beiden).

Einrichten auf dem Mac (nur bauen/veröffentlichen – das Spiel gibt es nur für Windows)

  1. Werkzeuge: .NET 10 SDK und PowerShell 7:
    brew install --cask dotnet-sdk powershell
    
  2. Repositories klonen (MSCO, MSCO-Launcher von git.mbm.wtf).
  3. NAS verbinden (Finder → Gehe zu → Mit Server verbinden → smb://mbmnas/mrmaho) – erscheint unter /Volumes/mrmaho.
  4. Spiel-DLLs zum Kompilieren der Mod (UnityEngine, Assembly-CSharp, PlayMaker, cInput) liegen unter MSCOModBackupData/Managed auf dem NAS. Am besten einmal lokal kopieren und den Ordner merken:
    mkdir -p ~/MSC-Managed && cp /Volumes/mrmaho/MSCOModBackupData/Managed/*.dll ~/MSC-Managed/
    echo 'export MSC_MANAGED="$HOME/MSC-Managed"' >> ~/.zshrc && source ~/.zshrc
    
  5. Token und Schlüssel in den Schlüsselbund:
    pwsh MSCO/release.ps1 -SaveToken
    pwsh MSCO/release.ps1 -ImportSigningKey /Volumes/mrmaho/MSCOModBackupData/msco-signing-key-backup.txt
    
  6. Danach wie oben: dotnet build -c Release (Mod) bzw. dotnet publish -c Release (Launcher).

Nach einem Spiel-Update (neue Assembly-CSharp.dll usw.) die DLLs auf dem NAS bzw. in ~/MSC-Managed erneuern.

Neuer Schlüssel?

Nur im Notfall (Schlüssel verloren): release.ps1 -NewSigningKey erzeugt ein neues Paar – dann muss der neue öffentliche Schlüssel in MSCO.Launcher/Services/ReleaseSignature.cs und MSCO.Launcher/Setup/Install.cs, und Spieler mit einem älteren Launcher müssen ihn einmal neu installieren (ihr Launcher lehnt die neuen Signaturen ab).