# Installer-Stabilitätsanalyse vom 11.08.2026 ## Ausgangslage Vor Version 2.1.0 enthielt das Repository keinen Installer für die C#-Anwendung. Die Datei `release/BizTalkPlatformManagementTool.ps1` ist eine ältere PowerShell-Implementierung des Tools und kein Installationsprogramm. Frühere `release/*.zip.txt` waren Base64-Quellpakete ohne Update-, Abnahme- oder Rollbacklogik. ## Implementierte Sicherheitsgrenzen - Vollständiges internes Payload-Manifest mit Dateipfad, Länge und SHA-256. - Ablehnung fehlender, veränderter, doppelter, zusätzlicher oder aus dem Payload-Verzeichnis ausbrechender Pfade. - Keine Mutation vor vollständig bestandenem Manifest- und Staging-Self-Test. - Update nur bei geschlossener produktiver Toolinstanz. - Staging und Backup als eindeutige Geschwister des Installationsverzeichnisses auf demselben Volume. - Acht begrenzte Move-Versuche mit 250, 500, 1.000, 2.000, 3.000, 5.000 und 8.000 ms Backoff zwischen den Versuchen. - SHA-256-verifizierter Kopierfallback für eine Neuinstallation ohne Ziel oder für eine Update-Aktivierung nach vollständig atomar gesicherter Vorversion; niemals als In-place-Update. - Zweiter Self-Test nach Aktivierung und vor Windows-Registrierung. - Automatisches Datei- und Registrierungsrollback bei Fehlern. - Dauerhaftes phasenbezogenes Installerlog unter ProgramData. - Temp-Fallback, falls das primäre Installerlog nicht angelegt werden kann. - Stabile Fehlercodes, vollständige Self-Test-Ausgaben, Exception-Ketten, HRESULTs und einzeln protokollierte Rollbackschritte. - Explizite Unterscheidung zwischen Fehlern vor der ersten Mutation und tatsächlich ausgeführtem Rollback. - Rücklesende Verifikation von Verknüpfungen, Uninstaller und zentralen Registrywerten. - Explizite optionale Exception-Grenze für sämtliche Zugriffe auf den gemeinsamen Desktop-Link; Startmenü, Uninstaller und Registry bleiben transaktionskritisch. - Deinstallation über Windows-Uninstall-Eintrag; Diagnoseprotokolle bleiben erhalten. - Äußere ZIP-Prüfsumme und Certutil-kompatible Base64-TXT für kontrollierte Übertragung. ## Lokal verifiziert - Release-Build aller Projekte mit Mono MSBuild. - Dreißig Regressionstests einschließlich manipulierter/zusätzlicher/ausbrechender Payload-Pfade, Staging-Abbruch ohne Mutation, transienter Move-Erholung, verifiziertem Neuinstallations- und Updatefallback, begrenztem Updateabbruch, erzwungenem Fehler des zweiten Self-Tests mit Wiederherstellung der Vorversion, Deinstallation über ein Quarantäneverzeichnis, Diagnosekontext, Log-Fallback sowie Fehlerisolierung der UI- und optionalen Desktop-Ausgabe. - WMI-freier Self-Test der produktiven EXE. - Erstellung des Installationsordners, ZIPs, Base64-TXTs und der SHA-256-Datei. - Rückdekodierung der Base64-TXT und Bytevergleich mit dem ZIP. - Erneute Prüfung des internen Manifests nach der Paketierung. ## Zweite Prüfung nach den Deployment-Erfahrungen des Schwesterprojekts Die erneute Prüfung orientierte sich an den dokumentierten Schwierigkeiten aus `biztalk-checkmk-pulse`. Zwei Erkenntnisse wurden bewusst übertragen: 1. Ein Fehler vor der ersten Änderung darf nicht als erfolgreicher Rollback beschrieben werden. Der Installer meldet daher eindeutig, dass kein Rollback erforderlich war und protokolliert `mutation_started=false`. 2. Technische Installationsfähigkeit und fachlicher Laufzeitzustand sind getrennte Abnahmen. Der WMI-freie Self-Test entscheidet über Aktivierung/Rollback; BizTalk-WMI, Berechtigungen und ein möglicher `Unknown`-Zustand werden erst danach mit **Diagnose** und Dry-run bewertet. Zusätzlich wurden die Informationen erfasst, die bei einem schwer reproduzierbaren Windows-Deployment typischerweise fehlen: genaue Setup-/Dateiversionen und Hashes, vollständiges `stdout`/`stderr`, dezimaler und hexadezimaler Exitcode, Timeout-/Kill-Ergebnis, Identität/Elevation, Exception-Kette/HRESULT/Stacktrace und jeder Rollbackschritt. Der Self-Test wartet nach einem Timeout höchstens weitere fünf Sekunden auf Prozessende und Ausgabekanäle; ein nicht beendbarer Prozess kann das Setup somit nicht unbegrenzt blockieren. ## Noch auf Windows/BizTalk zu validieren Die lokale Linux-/Mono-Verifikation kann folgende Windows-spezifische Punkte nicht abschließend beweisen: 1. UAC-Anforderung beider EXE-Dateien auf Windows Server 2019/2022. 2. Startmenü- und optionale Desktop-Verknüpfung über Windows Script Host. 3. 64-Bit-Uninstall-Eintrag und Aufruf über Apps & Features. 4. Updateblockade bei laufender installierter GUI. 5. Reales Rollback bei nicht durch den neuen Retry/Fallback aufgelösten Dateisperren oder Registryfehlern. 6. ProgramData-Fehler und Temp-Log-Fallback unter realen Windows-ACLs. 7. Diagnose und Laufzeitoperationen gegen `root\MicrosoftBizTalkServer` auf BizTalk Server 2020. Bis diese Punkte repräsentativ geprüft sind, ist der Installer lokal automatisiert gehärtet, aber noch nicht als vollständig produktionsvalidiert auf Windows/BizTalk zu bezeichnen.