Improve installer diagnostics and rollback reporting
This commit is contained in:
@@ -14,18 +14,31 @@ Vor Version 2.1.0 enthielt das Repository keinen Installer für die C#-Anwendung
|
||||
- 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.
|
||||
- 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.
|
||||
- Elf Regressionstests einschließlich manipulierter/zusätzlicher/ausbrechender Payload-Pfade, Staging-Abbruch ohne Mutation, erzwungenem Fehler des zweiten Self-Tests mit Wiederherstellung der Vorversion und Deinstallation über ein Quarantäneverzeichnis.
|
||||
- Vierzehn Regressionstests einschließlich manipulierter/zusätzlicher/ausbrechender Payload-Pfade, Staging-Abbruch ohne Mutation, erzwungenem Fehler des zweiten Self-Tests mit Wiederherstellung der Vorversion, Deinstallation über ein Quarantäneverzeichnis, Diagnosekontext, Log-Fallback und Fehlerisolierung der UI-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:
|
||||
@@ -35,6 +48,7 @@ Die lokale Linux-/Mono-Verifikation kann folgende Windows-spezifische Punkte nic
|
||||
3. 64-Bit-Uninstall-Eintrag und Aufruf über Apps & Features.
|
||||
4. Updateblockade bei laufender installierter GUI.
|
||||
5. Reales Rollback bei Dateisperren, Virenscannerzugriff oder Registryfehlern.
|
||||
6. Diagnose und Laufzeitoperationen gegen `root\MicrosoftBizTalkServer` auf BizTalk Server 2020.
|
||||
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.
|
||||
|
||||
Reference in New Issue
Block a user