Página 1 de 1
[RESUELTO] Manejo del código de retorno para la desinstalación
Publicado: 8 de junio de 2023 - 9:45 a. m.
por Thierry Rapp
Hola,
tengo un programa que se instala correctamente e introduce la clave de desinstalación silenciosa, pero el código de retorno no es 0.
¿Cuáles son las mejores prácticas para este tipo de problema?
Gracias de antemano,
Thierry Rapp.
Re: Manejo del código de retorno para la desinstalación
Publicado: 8 de junio de 2023 - 10:15 a. m.
por sfonteneau
Buen día
En este caso, te recomiendo borrar uninstallkey después de la instalación:
ENTONCES :
De esta manera wapt olvidará la clave
luego crea una función de desinstalación:
Código: Seleccionar todo
def uninstall():
run('uninstall.exe',accept_returncodes=2)
Re: Manejo del código de retorno para la desinstalación
Publicado: 8 de junio de 2023 - 10:50 a. m.
por Thierry Rapp
Lo probé:
El método de desinstalación ejecutado directamente funciona
El método eliminarme devuelve otro error
Código: Seleccionar todo
# -*- 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: Manejo del código de retorno para la desinstalación
Publicado: 8 de junio de 2023 - 12:08 p. m.
por sfonteneau
¿Puedes proporcionar el mensaje de error?
Tengo una duda sobre algo...
¿Puedes declarar uninstallkey justo antes de setup.py?
Código: Seleccionar todo
# -*- 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()
No creo que sea eso, pero... si la clave de desinstalación está vacía, wapt ya no tiene una clave para probar. Si sigue dando errores, significa que la clave sigue ahí
Re: Manejo del código de retorno para la desinstalación
Publicado: 8 de junio de 2023 - 12:18
por sfonteneau
Ah, sí, ten cuidado al hacer las pruebas; es fundamental reinstalar el programa antes de probar un comando de eliminación; de lo contrario, no funcionará porque el código no está en la base de datos. Esa podría ser la razón
Re: Manejo del código de retorno para la desinstalación
Publicado: 9 de junio de 2023 - 7:42 a. m.
por Thierry Rapp
Código: Seleccionar todo
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: Manejo del código de retorno para la desinstalación
Publicado: 9 de junio de 2023 - 7:46 a. m.
por Thierry Rapp
Estoy reiniciando la instalación.
El programa se desinstaló correctamente; simplemente está generando una excepción.
Re: Manejo del código de retorno para la desinstalación
Publicado: 9 de junio de 2023 - 8:43 a. m.
por Thierry Rapp
Código: Seleccionar todo
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: Manejo del código de retorno para la desinstalación
Publicado: 13 de junio de 2023 - 12:48
por dcardon
Thierry Rapp escribió: ↑9 de junio de 2023 - 08:43
Código: Seleccionar todo
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
Gracias por tus comentarios Thierry, hemos corregido el mensaje de excepción, se incluirá en la próxima versión 2.4.
Estoy marcando el tema como [RESUELTO].
Atentamente,
Denis