Pagina 1 di 1

[RISOLTO] Gestione del codice di ritorno per la disinstallazione

Pubblicato: 8 giugno 2023 - 09:45
di Thierry Rapp
Salve,
ho un software che si installa correttamente e inserisce il tasto per la disinstallazione silenziosa, ma il codice di ritorno non è 0.
Quali sono le procedure consigliate per questo tipo di problema?

Grazie in anticipo,
Thierry Rapp

Re: Gestione del codice di ritorno per la disinstallazione

Pubblicato: 8 giugno 2023 - 10:15
di sfontenau
Buongiorno

In questo caso, ti consiglio di cancellare uninstallkey dopo l'installazione:

COSÌ :

Codice: Seleziona tutto

uninstallkey = []
In questo modo wapt dimenticherà la chiave

quindi creare una funzione di disinstallazione:

Codice: Seleziona tutto

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

Re: Gestione del codice di ritorno per la disinstallazione

Pubblicato: 8 giugno 2023 - 10:50
di Thierry Rapp
L'ho testato:

Il metodo di disinstallazione eseguito direttamente funziona
Il metodo remove me restituisce un altro errore

Codice: Seleziona tutto

# -*- 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: Gestione del codice di ritorno per la disinstallazione

Pubblicato: 8 giugno 2023 - 12:08
di sfontenau
Puoi fornire il messaggio di errore?


Ho un dubbio su una cosa...

È possibile dichiarare uninstallkey subito prima di setup.py?

Codice: Seleziona tutto

# -*- 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()

Non credo sia questo il problema, ma... se uninstallkey è vuoto, wapt non ha più una chiave da testare. Se continua a dare errori, significa che la chiave è ancora lì

Re: Gestione del codice di ritorno per la disinstallazione

Pubblicato: 8 giugno 2023 - 12:18
di sfontenau
Oh sì, fate attenzione quando fate i test; dovete assolutamente reinstallare il programma prima di testare un comando di rimozione, altrimenti non funzionerà perché il codice non è nel database! Potrebbe essere questo il motivo più semplice

Re: Gestione del codice di ritorno per la disinstallazione

Pubblicato: 9 giugno 2023 - 07:42
di Thierry Rapp

Codice: Seleziona tutto

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: Gestione del codice di ritorno per la disinstallazione

Pubblicato: 9 giugno 2023 - 07:46
di Thierry Rapp
Sto riavviando l'installazione.

Il programma è stato disinstallato correttamente; si verifica solo un'eccezione.

Re: Gestione del codice di ritorno per la disinstallazione

Pubblicato: 9 giugno 2023 - 08:43
di Thierry Rapp

Codice: Seleziona tutto

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: Gestione del codice di ritorno per la disinstallazione

Pubblicato: 13 giugno 2023 - 12:48
di dcardon
Thierry Rapp ha scritto: 9 giugno 2023 - 08:43

Codice: Seleziona tutto

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
Grazie per il tuo feedback Thierry, abbiamo apportato una correzione al messaggio di eccezione, che sarà inclusa nella prossima versione 2.4.
Contrassegno l'argomento come [RISOLTO].

Sinceramente,

Denis