- downloadSetup() nutzte process.env.AGENT_VERSION statt der Patch-Gruppen- Zielversion → Staged Rollout (Test/Pilot/Produktion) hatte nie funktioniert, jeder Agent bekam beim Auto-Update immer dieselbe globale Version - Fix: downloadSetup() löst jetzt per ?hostname=X die Gruppen-Zielversion auf, exakt wie checkin() es bereits tat - ApiService.DownloadSetupAsync() schickt jetzt den Hostnamen mit - Version: 2.4.0 → 2.5.0 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
81 lines
3.0 KiB
Plaintext
81 lines
3.0 KiB
Plaintext
#define MyAppName "IT Nexus Agent"
|
|
#define MyAppVersion "2.5.0"
|
|
#define MyAppPublisher "Cereda Systems GmbH"
|
|
#define MyAppURL "https://it-nexus.cereda-systems.de"
|
|
#define MyAppExeName "IT-Nexus-Agent.exe"
|
|
#define MyAppGUID "B3F7A2C1-4E8D-4F2A-9B1C-7D3E5F6A8B2C"
|
|
|
|
[Setup]
|
|
AppId={{{#MyAppGUID}}
|
|
AppName={#MyAppName}
|
|
AppVersion={#MyAppVersion}
|
|
AppVerName={#MyAppName} {#MyAppVersion}
|
|
AppPublisher={#MyAppPublisher}
|
|
AppPublisherURL={#MyAppURL}
|
|
AppSupportURL={#MyAppURL}
|
|
AppUpdatesURL={#MyAppURL}
|
|
DefaultDirName={autopf}\{#MyAppName}
|
|
DefaultGroupName={#MyAppName}
|
|
DisableProgramGroupPage=yes
|
|
DisableWelcomePage=no
|
|
OutputDir=..\installer
|
|
OutputBaseFilename=IT-Nexus-Agent-Setup-v{#MyAppVersion}
|
|
SetupIconFile=icon.ico
|
|
Compression=lzma2/max
|
|
SolidCompression=yes
|
|
WizardStyle=modern
|
|
WizardResizable=no
|
|
PrivilegesRequired=admin
|
|
MinVersion=10.0.17763
|
|
ArchitecturesInstallIn64BitMode=x64
|
|
UninstallDisplayIcon={app}\{#MyAppExeName}
|
|
UninstallDisplayName={#MyAppName} {#MyAppVersion}
|
|
VersionInfoVersion={#MyAppVersion}
|
|
VersionInfoCompany={#MyAppPublisher}
|
|
VersionInfoDescription={#MyAppName}
|
|
CloseApplications=yes
|
|
CloseApplicationsFilter=IT-Nexus-Agent.exe
|
|
|
|
[Languages]
|
|
Name: "german"; MessagesFile: "compiler:Languages\German.isl"
|
|
|
|
[Files]
|
|
Source: "publish\IT-Nexus-Agent.exe"; DestDir: "{app}"; Flags: ignoreversion
|
|
Source: "icon.ico"; DestDir: "{app}"; Flags: ignoreversion
|
|
Source: "config.template.json"; DestDir: "{commonappdata}\IT Nexus Agent"; DestName: "config.json"; Flags: onlyifdoesntexist uninsneveruninstall
|
|
|
|
[Icons]
|
|
; Kein Start-Menü-Icon und kein Desktop-Icon — Agent läuft unsichtbar im Hintergrund
|
|
|
|
[Registry]
|
|
; Kein Autostart-Eintrag — Dashboard wird NICHT automatisch gestartet
|
|
|
|
[Run]
|
|
Filename: "{app}\{#MyAppExeName}"; Parameters: "--install"; Flags: runhidden waituntilterminated; StatusMsg: "Installiere Windows Service..."
|
|
|
|
[UninstallRun]
|
|
Filename: "{app}\{#MyAppExeName}"; Parameters: "--uninstall"; Flags: runhidden waituntilterminated
|
|
|
|
[UninstallDelete]
|
|
Type: files; Name: "{commonappdata}\IT Nexus Agent\status.json"
|
|
Type: files; Name: "{commonappdata}\IT Nexus Agent\agent.log"
|
|
|
|
[Code]
|
|
procedure CurStepChanged(CurStep: TSetupStep);
|
|
var
|
|
ResultCode: Integer;
|
|
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
|
|
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);
|
|
end;
|
|
end;
|