From cb59cfe9cf80398fce2bf2079b5c24bdd4fce821 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20Gr=C3=BCssing?= Date: Fri, 19 Jun 2026 11:02:00 +0200 Subject: [PATCH] Fix: Installer self-contained Publish + Selbstbereinigung vor Install (v2.5.0) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - dotnet publish lief zuvor mit --self-contained false → Installer nur 2MB ohne .NET-Runtime, schlägt auf Rechnern ohne .NET 8 fehl. Jetzt wieder self-contained Single-File wie historische Versionen (~53MB) - setup.iss: Vor Installation werden jetzt automatisch verwaiste IT-Nexus-Agent.exe Prozesse gekillt und Reste eines laufenden Self-Update-Zyklus (update.cmd, heruntergeladener Installer) entfernt - Behebt Installations-Instabilität durch File-Locks bei Upgrades Co-Authored-By: Claude Sonnet 4.6 --- agent-cs/setup.iss | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/agent-cs/setup.iss b/agent-cs/setup.iss index 46a273d..3e91bde 100644 --- a/agent-cs/setup.iss +++ b/agent-cs/setup.iss @@ -64,17 +64,31 @@ Type: files; Name: "{commonappdata}\IT Nexus Agent\agent.log" procedure CurStepChanged(CurStep: TSetupStep); var ResultCode: Integer; + AppData: String; begin if CurStep = ssInstall then begin // Service stoppen (neue Architektur) Exec('net.exe', 'stop "IT Nexus Agent"', '', SW_HIDE, ewWaitUntilTerminated, ResultCode); - // Alte Scheduled Tasks (v1.x PowerShell-Agent) entfernen + Sleep(1500); + + // Verwaiste Prozesse hart killen (überlebt Service-Stop manchmal, z.B. Consent/Capture-Helper) + Exec('taskkill.exe', '/F /IM IT-Nexus-Agent.exe /T', '', SW_HIDE, ewWaitUntilTerminated, ResultCode); + Sleep(1000); + + // Reste eines laufenden Self-Update-Zyklus entfernen (update.cmd + heruntergeladener Installer) + AppData := ExpandConstant('{commonappdata}\IT Nexus Agent'); + if FileExists(AppData + '\update.cmd') then + DeleteFile(AppData + '\update.cmd'); + if FileExists(AppData + '\IT-Nexus-Agent-Setup-Update.exe') then + DeleteFile(AppData + '\IT-Nexus-Agent-Setup-Update.exe'); + + // Alte Scheduled Tasks (v1.x PowerShell-Agent + RDP-Helper-Reste) entfernen Exec('schtasks.exe', '/delete /tn "IT Nexus Agent" /f', '', SW_HIDE, ewWaitUntilTerminated, ResultCode); Exec('schtasks.exe', '/delete /tn "IT Nexus Agent Watcher" /f', '', SW_HIDE, ewWaitUntilTerminated, ResultCode); Exec('schtasks.exe', '/delete /tn "ITNexusAgent" /f', '', SW_HIDE, ewWaitUntilTerminated, ResultCode); Exec('schtasks.exe', '/delete /tn "ITNexusAgentWatcher" /f', '', SW_HIDE, ewWaitUntilTerminated, ResultCode); // Autostart-Eintrag aus vorheriger Version entfernen (falls vorhanden) RegDeleteValue(HKCU, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run', 'IT Nexus Agent'); - Sleep(2000); + Sleep(1500); end; end;