Page 1 sur 1

[RESOLU] Gestion du code retour pour uninstall

Posté : 08 juin 2023 - 09:45
par Thierry Rapp
Bonjour,
J'ai un logiciel qui s’installe correctement qui renseigne bien la clé de désinstallation silencieuse mais dont le code de retour est différent de 0.
Quelle sont les bonne pratiques pour ce genre de problème.

Merci d'avance
Thierry Rapp

Re: Gestion du code retour pour uninstall

Posté : 08 juin 2023 - 10:15
par sfonteneau
Bonjour

Dans ce cas je vous conseille de vider uninstallkey après l'installation:

donc :

Code : Tout sélectionner

uninstallkey = []
De cette manière wapt va oublier la clé

puis de créer une fonction de uninstall:

Code : Tout sélectionner

def uninstall():
    run('uninstall.exe',accept_returncodes=2)

Re: Gestion du code retour pour uninstall

Posté : 08 juin 2023 - 10:50
par Thierry Rapp
J'ai testé :

La méthode Uninstall exécutée directement fonctionne
La méthode remove me retourne encore une erreur

Code : Tout sélectionner

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

app_uninstall_key = '{7261A53C-9352-45D1-8DE0-B326E177CA84}'

def install():
    # Declaring local variables
    fichier_lic=makepath('c:','ProgramData','itech','CESAR-LCPC','6.3','CDs')
    fichier_nethasp=makepath('c:','CESAR-LCPCv2022.0','bin')
    rep_syswow=makepath('c:','Windows','SysWOW64')
    # Installing the software
    print("Installing: CESAR-LCPCv2022.0.2.exe")
    install_exe_if_needed('CESAR-LCPCv2022.0.2.exe',
        silentflags='/b0 /q2',
        key=app_uninstall_key,
        min_version='2022.0',
        timeout=600,
        accept_returncodes=[0,12]
    )
 
    if not isdir(fichier_lic):
        mkdirs(fichier_lic)
    filecopyto('CESAR-LCPC_V6.3.ilicx',fichier_lic)
    filecopyto('nethasp.ini',fichier_nethasp)
    filecopyto('nethasp.ini',rep_syswow)
    uninstallkey =[]


def uninstall():
    uninstCMD = uninstall_cmd(app_uninstall_key)
    print(uninstCMD)
    run(uninstCMD,accept_returncodes=[0,12])
    wait_uninstallkey_present()




Re: Gestion du code retour pour uninstall

Posté : 08 juin 2023 - 12:08
par sfonteneau
Vous pouvez donner le message d'erreur ?


J'ai un doute sur quelque chose ...

Vous pouvez déclarer uninstallkey juste avant le setup.py ?

Code : Tout sélectionner

# -*- coding: utf-8 -*-
from setuphelpers import *
uninstallkey =[]
app_uninstall_key = '{7261A53C-9352-45D1-8DE0-B326E177CA84}'

def install():
    # Declaring local variables
    fichier_lic=makepath('c:','ProgramData','itech','CESAR-LCPC','6.3','CDs')
    fichier_nethasp=makepath('c:','CESAR-LCPCv2022.0','bin')
    rep_syswow=makepath('c:','Windows','SysWOW64')
    # Installing the software
    print("Installing: CESAR-LCPCv2022.0.2.exe")
    install_exe_if_needed('CESAR-LCPCv2022.0.2.exe',
        silentflags='/b0 /q2',
        key=app_uninstall_key,
        min_version='2022.0',
        timeout=600,
        accept_returncodes=[0,12]
    )
 
    if not isdir(fichier_lic):
        mkdirs(fichier_lic)
    filecopyto('CESAR-LCPC_V6.3.ilicx',fichier_lic)
    filecopyto('nethasp.ini',fichier_nethasp)
    filecopyto('nethasp.ini',rep_syswow)
    uninstallkey =[]


def uninstall():
    uninstCMD = uninstall_cmd(app_uninstall_key)
    print(uninstCMD)
    run(uninstCMD,accept_returncodes=[0,12])
    wait_uninstallkey_present()

Je crois pas que c'est ça mais... mais si uninstallkey est vide alors wapt n'a plus de clé a tester, si ça continue de faire des erreurs c'est que la clé est toujours là

Re: Gestion du code retour pour uninstall

Posté : 08 juin 2023 - 12:18
par sfonteneau
Ha oui attention quand vous faite vos test il faut absolument relancer une installation avant de tester un remove, sinon effectivement ça ne marchera pas puisque le code n'est pas dans la db ! C'est peu être tout simplement ça

Re: Gestion du code retour pour uninstall

Posté : 09 juin 2023 - 07:42
par Thierry Rapp

Code : Tout sélectionner

Removing C:\waptdev\insastg-cesar_2022.0.2-2_windows_PROD ...
2023-06-09 07:39:07,072 CRITICAL Critical error during uninstall: CalledProcessErrorOutput: Command 'C:\\PROGRA~3\\UNINST~1\\{7261A~1\\Setup.exe /remove /q' returned non-zero exit status 12.
Output:
No package removed !
FATAL ERROR : TypeError: not all arguments converted during string formatting

Re: Gestion du code retour pour uninstall

Posté : 09 juin 2023 - 07:46
par Thierry Rapp
Je relance l'installation.

Le programme est désinstallé correctement il déclenche juste une exception

Re: Gestion du code retour pour uninstall

Posté : 09 juin 2023 - 08:43
par Thierry Rapp

Code : Tout sélectionner

Une exception s'est produite : SystemExit       (note: full exception trace is shown but execution is paused at: _run_module_as_main)
3
  File "C:\Program Files (x86)\wapt\wapt-get.py", line 817, in main
    print("=== Error removing packages ===\n%s" % "\n".join(["  %s" % p for p in errors]))
  File "C:\Program Files (x86)\wapt\wapt-get.py", line 817, in <listcomp>
    print("=== Error removing packages ===\n%s" % "\n".join(["  %s" % p for p in errors]))
TypeError: not all arguments converted during string formatting

During handling of the above exception, another exception occurred:

  File "C:\Program Files (x86)\wapt\wapt-get.py", line 1651, in main
    sys.exit(3)
  File "C:\Program Files (x86)\wapt\wapt-get.py", line 1677, in <module>
    main()
  File "C:\Program Files (x86)\wapt\Lib\site-packages\runpy.py", line 87, in _run_code
  File "C:\Program Files (x86)\wapt\Lib\site-packages\runpy.py", line 194, in _run_module_as_main (Current frame)
SystemExit: 3

Re: Gestion du code retour pour uninstall

Posté : 13 juin 2023 - 12:48
par dcardon
Thierry Rapp a écrit : 09 juin 2023 - 08:43

Code : Tout sélectionner

Une exception s'est produite : SystemExit       (note: full exception trace is shown but execution is paused at: _run_module_as_main)
3
  File "C:\Program Files (x86)\wapt\wapt-get.py", line 817, in main
    print("=== Error removing packages ===\n%s" % "\n".join(["  %s" % p for p in errors]))
  File "C:\Program Files (x86)\wapt\wapt-get.py", line 817, in <listcomp>
    print("=== Error removing packages ===\n%s" % "\n".join(["  %s" % p for p in errors]))
TypeError: not all arguments converted during string formatting

During handling of the above exception, another exception occurred:

  File "C:\Program Files (x86)\wapt\wapt-get.py", line 1651, in main
    sys.exit(3)
  File "C:\Program Files (x86)\wapt\wapt-get.py", line 1677, in <module>
    main()
  File "C:\Program Files (x86)\wapt\Lib\site-packages\runpy.py", line 87, in _run_code
  File "C:\Program Files (x86)\wapt\Lib\site-packages\runpy.py", line 194, in _run_module_as_main (Current frame)
SystemExit: 3
merci pour votre retour Thierry, on a fait un correctif pour le message d'exception, ça sera inclus dans la prochaine release 2.4.
Je passe le topic en [RESOLU].

Cordialement,

Denis