[GELÖST] Die Version in der Registry entspricht nicht den Anforderungen von min_version

Fragen zu WAPT-Paketen / Anfragen und Hilfe bezüglich WAPT-Paketen.
Forumregeln
Community-Forumregeln
* Englischer Support auf www.reddit.com/r/wapt
* Französischer Community-Support ist in diesem Forum verfügbar.
* Bitte kennzeichnen Sie gelöste Themen mit [GELÖST].
* Bitte bearbeiten Sie keine Themen, die mit [GELÖST] markiert sind. Erstellen Sie stattdessen ein neues Thema und verweisen Sie auf das alte.
* Geben Sie die installierte WAPT-Version, die vollständige Versionsnummer und die Build-Nummer (2.2.1.11957 / 2.2.2.12337 / usw.) sowie die Enterprise-/Discovery-Edition an.
* Versionen 1.8.2 und älter werden nicht mehr unterstützt. Fragen zu Version 1.8.2 werden nur beantwortet, wenn sie sich auf ein Upgrade auf eine unterstützte Version (2.1, 2.2 usw.) beziehen.
* Geben Sie das Server-Betriebssystem (Linux/Windows) und die Version (Debian Buster/Bullseye – CentOS 7 – Windows Server 2012/2016/2019) an.
* Geben Sie gegebenenfalls das Betriebssystem des Administrations-/Paketerstellungsrechners und des Rechners mit dem problematischen Agenten an (Windows 7/10/11/Debian 11/etc.).
* Vermeiden Sie es, mehrere Fragen in einem Thema zu stellen, da diese sonst möglicherweise ignoriert werden. Falls mehrere Themen relevant sind, erstellen Sie bitte separate Themen, vorzugsweise nacheinander und nicht gleichzeitig (d. h. vermeiden Sie Spam im Forum).
* Fügen Sie Code-Snippets, Screenshots und andere Bilder direkt in Ihren Beitrag ein. Links zu Pastebin, Bitly und anderen Drittanbieterseiten werden systematisch entfernt.
* Wie in jedem Community-Forum erfolgt die Unterstützung freiwillig durch die Mitglieder. Für kommerziellen Support kontaktieren Sie bitte den Vertrieb von Tranquil IT unter +44 2 40 97 57 55.
Gesperrt
cefinformatique
Nachrichten: 31
Anmeldung: 26. Mai 2023 - 14:25 Uhr

3. Januar 2024 – 13:54 Uhr

Guten Morgen,

Ich habe ein Paket erstellt, um die Software (bereits auf den Client-Rechnern installiert) in Version 23.1.0.4 bereitzustellen

Hier ist die setup.py-Datei für mein Paket:

Code: Alle auswählen

def install():
    softname ='AWCLIENTSQL'
    listAW=installed_softwares(softname)
    if listAW == softname:
        print("Mise a jour de DiaClientSQL")
        install_exe_if_needed('DiaClientSQLInstall.exe',
            silentflags='/Silent',
            key='AWCLIENTSQL',
            remove_old_version=True
        )
    else:
        print("Mise a jour de DiaClientSQL")
        install_exe_if_needed('DiaClientSQLInstall.exe',
            silentflags='/Silent',
            key='AWCLIENTSQL'
        )
        filecopyto(r'C:\ProgramData\Microsoft\Windows\Start Menu\Programs\ACDSuite\DiaClient SQL.lnk',r'C:\Users\Public\Desktop')
Nach der Bereitstellung des Pakets erhalte ich in 80 % der Fälle die folgende Fehlermeldung:
waptutils.EWaptSetupException: Schwerwiegender Fehler: Die Datei DiaClientSQLInstall.exe wurde ausgeführt und der Registrierungsschlüssel AWCLIENTSQL wurde gefunden, die Version in der Registrierung entspricht jedoch nicht den Anforderungen von min_version=23.1.0.4

.
Wenn ich das Update manuell neu starte, wird es nach mehreren Versuchen schließlich korrekt angewendet.

Die vor dem Update über WAPT installierte Version war 23.1.0.2

Was kann ich tun, um dieses Problem zu vermeiden?
Zuletzt bearbeitet von cefinformatique am 14. Februar 2024 um 14:35 Uhr, 2 Mal bearbeitet.
Benutzeravatar
Sfonteneau
WAPT-Experte
Nachrichten: 2322
Registriert: 10. Juli 2014 - 23:52 Uhr
Kontakt:

3. Januar 2024 – 15:24 Uhr

Der Funktion install_exe_if_need wird kein min_version-Argument übergeben

Die Funktion bewirkt also Folgendes:

Code: Alle auswählen

if min_version is None:
    min_version = get_product_props(exe)['version']
Und ruft die in den Dateieigenschaften angegebene Versionsnummer ab.

In Ihrem Fall ist es wahrscheinlich nicht gut

Am besten wäre es, ein min_version-Argument mit der Versionsnummer hinzuzufügen, die dem AWCLIENTSQL-Schlüssel zugeordnet ist
cefinformatique
Nachrichten: 31
Anmeldung: 26. Mai 2023 - 14:25 Uhr

13. Februar 2024 – 13:36 Uhr

Hallo,

ich greife dieses Thema erneut auf, da ich bei einem kürzlichen Software-Update den Wert für „min_version“ korrekt eingegeben habe, das Problem aber weiterhin besteht.

Ich habe die Ursache gefunden: Während der Programminstallation wird die alte Version nicht deinstalliert. Da die Installation vor der Aktualisierung der Versionsnummer in der Windows-Registrierung den Fehlercode 0 zurückgibt, vergleicht das WAPT-Paket seine Versionsnummer mit der noch in der Registrierung gespeicherten alten Nummer.

Um dieses Problem zu beheben, muss das WAPT-Paket daher zwischen dem Abschluss der Installation und der Überprüfung der Versionsnummer in der Registrierung etwa 20 Sekunden warten.

Ist das möglich?
cefinformatique
Nachrichten: 31
Anmeldung: 26. Mai 2023 - 14:25 Uhr

14. Februar 2024 – 14:34 Uhr

Ich habe mein Problem gelöst, indem ich mit dem WinReg-Modul den Registrierungsschlüssel der Software vor der Installation gelöscht habe. Das ist zwar etwas umständlich, aber es funktioniert!

Code: Alle auswählen

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

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 = ['AWCLIENTSQL']

def install():
    killalltasks(control.get_impacted_process_list())
    softname ='AWCLIENTSQL'
    listFULL=installed_softwares(softname)
    listAW=listFULL[0]['key']
    if listAW == softname:
        # Define the registry key path
        key_path = r"SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall"
        # Open the registry key for deletion
        try:
            with winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, key_path, 0, winreg.KEY_ALL_ACCESS) as registry_key:
                winreg.DeleteKey(registry_key, "AWCLIENTSQL")
                print("Registry key deleted successfully.")
        except FileNotFoundError:
            print("Registry key not found.")
        except PermissionError:
            print("Permission error. Run the script with administrative privileges.")
        except Exception as e:
            print(f"An error occurred: {e}")
        print("Mise a jour de DiaClientSQL")
        install_exe_if_needed('DiaClientSQLInstall.exe',
            silentflags='/Silent',
            key=softname,
            remove_old_version=True,
#            min_version=control.get_version()
        )
    else:
        print("Installation de DiaClientSQL")
        install_exe_if_needed('DiaClientSQLInstall.exe',
            silentflags='/Silent',
            key=softname,
            remove_old_version=True
        )
        filecopyto(r'C:\ProgramData\Microsoft\Windows\Start Menu\Programs\ACDSuite\DiaClient SQL.lnk',r'C:\Users\Public\Desktop')
Benutzeravatar
dcardon
WAPT-Experte
Nachrichten: 1953
Anmeldung: 18. Juni 2014 - 09:58 Uhr
Ort: Saint Sébastien sur Loire
Kontakt:

15. Februar 2024 – 16:25 Uhr

Hallo Marc,

vielen Dank für das Feedback!

Denis
Denis Cardon – Tranquil IT
Teilen Sie Ihre Erfahrungen auf WAPT! Senden Sie uns Ihre Blog- und Artikel-URLs im „Ihre Meinung des Forums, und wir werden sie auf der WAPT-
Gesperrt