Seite 1 von 1

[GELÖST] Die Uninstall()-Funktion von WAPT wird nicht ausgeführt?

Veröffentlicht: 1. April 2026 - 17:13 Uhr
von erems
Guten Morgen,

Wir arbeiten aktuell an einem DinoCapture-Paket; hier ist die setup.py-Datei:

Code: Alle auswählen

# -*- coding: utf-8 -*-
from setuphelpers import *

r"""
Usable WAPT package functions: install(), uninstall(), session_setup(), audit(), update_package()

"""
# Declaring global variables - Warnings: 1) WAPT context is only available in package functions; 2) Global variables are not persistent between calls

uninstallkey = r'{683A259B-BCA2-4161-9B23-2110F2AE472C}'
iss_path = r"C:\Program Files\DinoCapture-2.0-Uninstall"

def install():
    copytree2('DNC2_AP',iss_path)
    # Installing the software
    print("Installing: DinoCapture 2.0")
    install_exe_if_needed(rf'{iss_path}\setup.exe',
        silentflags='/s',
        key=uninstallkey,
        min_version='1.5.57.A'
    )

def uninstall():
    # Declaring local variables
    setupfile = rf'{iss_path}\setup.exe'
    uninst_file = rf'{iss_path}\uninstall.iss'
    if isfile(uninst_file):
        print("Lancement de la désinstallation DinoCapture")
        uninstallcmd = rf'"{setupfile}" /s /f1"{uninst_file}"'
        print(uninstallcmd)
        run(
            uninstallcmd,
            accept_returncodes=[0,1605,1614,1641,3010,2147753984]
        )
        remove_tree(iss_path)
    else:
        print("Fichier non trouvé : ", uninst_file)
Innerhalb von PyScripter funktionieren die Installations- und Deinstallationsfunktionen korrekt. Die Deinstallation liefert die erwartete Ausgabe:

Code: Alle auswählen

Ligne de Commande : uninstall "C:\Users\user-adm\Desktop\erems-dinocapture_1.5.57_Windows_PROD-wapt\WAPT\.."
Using config file: C:\Program Files (x86)\wapt\wapt-get.ini
Uninstalling C:\Users\user-adm\Desktop\erems-dinocapture_1.5.57_Windows_PROD-wapt ...
Lancement de la désinstallation DinoCapture
"C:\Program Files\DinoCapture-2.0-Uninstall\setup.exe" /s /f1"C:\Program Files\DinoCapture-2.0-Uninstall\uninstall.iss"
2026-04-01 16:13:41,591 WARNING "C:\Program Files\DinoCapture-2.0-Uninstall\setup.exe" /s /f1"C:\Program Files\DinoCapture-2.0-Uninstall\uninstall.iss" command returns code 2147753984
None
Uninstallation done
Das in WAPT importierte Paket lässt sich zwar korrekt installieren, aber nicht ordnungsgemäß deinstallieren:

Code: Alle auswählen

Waiting for the removal of key: {683A259B-BCA2-4161-9B23-2110F2AE472C} from Windows registry
Fatal error : Uninstallkey still present
Traceback (most recent call last):
  File "<string>", line 1693, in run
  File "C:\Program Files (x86)\wapt\waptservice\waptservice_common.py", line 891, in run
    self._run()
  File "C:\Program Files (x86)\wapt\waptservice\waptservice_common.py", line 1544, in _run
    self.result = self.wapt.remove(self.packagenames,
  File "C:\Program Files (x86)\wapt\common.py", line 6017, in remove
    setuphelpers.error('Uninstallkey still present')
  File "C:\Program Files (x86)\wapt\waptutils.py", line 2176, in error
    raise EWaptSetupException('Fatal error : %s' % reason)
waptutils.EWaptSetupException: Fatal error : Uninstallkey still present

EWaptSetupException: Fatal error : Uninstallkey still present
Traceback (most recent call last):
  File "<string>", line 1693, in run
  File "C:\Program Files (x86)\wapt\waptservice\waptservice_common.py", line 891, in run
    self._run()
  File "C:\Program Files (x86)\wapt\waptservice\waptservice_common.py", line 1544, in _run
    self.result = self.wapt.remove(self.packagenames,
  File "C:\Program Files (x86)\wapt\common.py", line 6017, in remove
    setuphelpers.error('Uninstallkey still present')
  File "C:\Program Files (x86)\wapt\waptutils.py", line 2176, in error
    raise EWaptSetupException('Fatal error : %s' % reason)
waptutils.EWaptSetupException: Fatal error : Uninstallkey still present
Ich finde keine Spuren; anscheinend wird meine benutzerdefinierte Deinstallationsfunktion nicht ausgeführt (?)
Weißt du, warum?

Ich danke Ihnen für Ihre Hilfe.
Beste grüße.

Betreff: WAPT führt die uninstall()-Funktion nicht aus?

Veröffentlicht: 8. April 2026 - 16:47 Uhr
von erems
Guten Morgen,

Ich habe mir das Problem heute noch einmal angesehen und denke, es handelt sich um einen Fehler (WAPT 2.6.1.17765), denn auf einem Rechner, auf dem das Paket installiert ist:
- Wenn ich das Paket über die Konsole deinstalliere, erhalte ich die Fehlermeldung, die ich in meinem ersten Beitrag angegeben habe (und die Software ist immer noch auf dem Rechner).
- Wenn ich auf den Computer gehe und Folgendes ausführe: wapt-get uninstall erems-dinocapture -l debug

Code: Alle auswählen

[DEBUG] Logging TSynLog with level=debug to C:\Program Files (x86)\wapt\log\wapt-get.log
2026-04-08 16:42:30,680 DEBUG Default encoding : utf-8
2026-04-08 16:42:30,680 DEBUG Caller: ['', 'uninstall', 'erems-dinocapture', '-l', 'debug']
2026-04-08 16:42:30,680 DEBUG Python path ['C:\\Program Files (x86)\\wapt', 'C:\\Program Files (x86)\\wapt\\python310.zip', 'C:\\Program Files (x86)\\wapt', 'C:\\Program Files (x86)\\wapt\\DLLs', 'C:\\Program Files (x86)\\wapt\\lib\\site-packages', 'C:\\Program Files (x86)\\wapt\\lib\\site-packages\\win32', 'C:\\Program Files (x86)\\wapt\\lib\\site-packages\\win32\\lib', 'C:\\Program Files (x86)\\wapt\\lib\\site-packages\\Pythonwin']
2026-04-08 16:42:30,680 INFO Using local waptservice configuration C:\Program Files (x86)\wapt\wapt-get.ini
2026-04-08 16:42:30,680 DEBUG Config file: C:\Program Files (x86)\wapt\wapt-get.ini
2026-04-08 16:42:30,680 INFO Using openssl OpenSSL 3.5.5 27 Jan 2026
2026-04-08 16:42:30,680 DEBUG Thread 11812 is connecting to wapt db
Using config file: C:\Program Files (x86)\wapt\wapt-get.ini
2026-04-08 16:42:30,699 INFO User Groups:[]
2026-04-08 16:42:30,699 DEBUG Using host certificate C:\Program Files (x86)\wapt\private\4c4c4544-0053-5410-8034-c4c04f374a32.pem for repo global auth
2026-04-08 16:42:30,699 DEBUG 11812 Loading config from file C:\Program Files (x86)\wapt\conf.d\cfg-all-maturities.json
2026-04-08 16:42:30,699 DEBUG 11812 Loading config from file C:\Program Files (x86)\wapt\conf.d\cfg-windows-update.json
2026-04-08 16:42:30,699 DEBUG 11812 Loading config from file C:\Program Files (x86)\wapt\conf.d\Config_Maturities.json
2026-04-08 16:42:30,699 INFO WAPT base directory : C:\Program Files (x86)\wapt
2026-04-08 16:42:30,699 DEBUG Checking if old install in progress
2026-04-08 16:42:30,716 DEBUG reset stalled install_status in database
2026-04-08 16:42:30,716 DEBUG Thread 11812 is connecting to wapt db
Uninstalling erems-dinocapture ...
2026-04-08 16:42:30,728 DEBUG Sourcing setup from DB
2026-04-08 16:42:30,728 INFO   sourcing setuppy file None
2026-04-08 16:42:30,728 DEBUG Import source code as __waptsetup_CMXIWURP55__
2026-04-08 16:42:30,744 INFO   executing setup.uninstall({})
Lancement de la désinstallation DinoCapture
"C:\Program Files\DinoCapture-2.0-Uninstall\setup.exe" /s /f1"C:\Program Files\DinoCapture-2.0-Uninstall\uninstall.iss"
2026-04-08 16:42:30,744 INFO Run ""C:\Program Files\DinoCapture-2.0-Uninstall\setup.exe" /s /f1"C:\Program Files\DinoCapture-2.0-Uninstall\uninstall.iss""
2026-04-08 16:42:46,256 WARNING "C:\Program Files\DinoCapture-2.0-Uninstall\setup.exe" /s /f1"C:\Program Files\DinoCapture-2.0-Uninstall\uninstall.iss" command returns code 2147753984
2026-04-08 16:42:46,316 DEBUG Removing module: __waptsetup_CMXIWURP55__, refcnt: 3
2026-04-08 16:42:46,316 DEBUG   Change current directory to C:\Windows\System32
None
Uninstallation done
20260408 14424619  ! rotat wapt-get 2.6.1.17765 TSynLog 2.4.13434 {4 9.47 7.05 3.6GB/7.9GB 66581b01}
20260408 14424619  ! info  SetThreadName 1 2e24 11812=Main
20260408 14424619  ! info  wapt-get terminate
Alles läuft gut, wir können sehen, dass die Deinstallationsfunktion korrekt aufgerufen wird und die Software tatsächlich deinstalliert wird.

Könnten Sie uns bitte helfen? Ich kann Ihnen den Quellcode des Pakets zusenden, wenn Sie möchten.
DANKE.

Betreff: WAPT führt die uninstall()-Funktion nicht aus?

Veröffentlicht: 8. April 2026 - 17:16 Uhr
von Sfonteneau
Guten Morgen

Entschuldigung, ich dachte, ich hätte auf Ihren Beitrag geantwortet, aber anscheinend nicht

Fügen Sie diese Zeile am Ende des Installationsbefehls in Ihrem Code hinzu:

Code: Alle auswählen

uninstallkey.remove(r'{683A259B-BCA2-4161-9B23-2110F2AE472C}')
Wapt anweisen, den Schlüssel zu vergessen und ihn nicht in der Wapt-Datenbank zu speichern

Betreff: WAPT führt die uninstall()-Funktion nicht aus?

Veröffentlicht: 10. April 2026 - 09:43 Uhr
von erems
Hallo,

vielen Dank, es funktioniert tatsächlich.

Muss dies systematisch erfolgen, wenn man eine benutzerdefinierte Deinstallationsfunktion in einem WAPT-Paket verwendet?

Viele Grüße.

Betreff: [GELÖST] Die Uninstall()-Funktion von WAPT wird nicht ausgeführt?

Veröffentlicht: 10. April 2026 - 10:04 Uhr
von dcardon
Hallo erems,

die Deinstallationsfunktion ergänzt die standardmäßig in Wapt integrierte Deinstallationsfunktion mit dem Deinstallationsschlüssel.

Wenn Sie also explizit innerhalb Ihres Deinstallationsbefehls deinstallieren, müssen Sie den Deinstallationsschlüssel entfernen; andernfalls wird der Deinstallationsbefehl zweimal ausgeführt (und stürzt daher ab). Wir werden die Dokumentation prüfen, um dies besser zu erklären.

Vielen Dank für Ihr Feedback :-)

. Beste Grüße,

Denis