Page 1 sur 1

[RESOLU] Surcharge fonction remove()

Posté : 14 juin 2024 - 11:37
par sebastien4444
Bonjour,

J'ai crée un paquet pour l'installation d'office 2019 via l'outil officedeploymenttool et je fournis bien la clé de désinstallation dans les paramètres de la fonction install_exe_if_needed().
L'installation est OK, mais quand je run un remove pour la désinstallation, j'ai l'erreur suivante :

Code : Tout sélectionner

Command Line : remove "C:\waptdev\pilote-regtest_1.0_x64_Windows_PROD-wapt\WAPT\.."
Using config file: C:\Program Files (x86)\wapt\wapt-get.ini
Removing C:\waptdev\pilote-regtest_1.0_x64_Windows_PROD-wapt\WAPT\.. ...
2024-06-14 11:19:04,815 CRITICAL Critical error during uninstall: CalledProcessErrorOutput: Command ['"C:\\Program Files\\Common Files\\Microsoft Shared\\ClickToRun\\OfficeClickToRun.exe" scenario=install scenariosubtype=ARP sourcetype=None productstoremove=Standard2019Volume.16_fr-fr_x-none culture=fr-fr version.16=16.0'] returned non-zero exit status 1.
Output:La syntaxe du nom de fichier, de répertoire ou de volume est incorrecte.
Ma première question est donc : que veux exactement dire ce message ? :?:

Du coup, en solution de contournement, j'ai crée un fichier de config uninstall.xml qui permet la désinstallation de ma version d'office, et pendant l'installation, je vais copier ce fichier et le setup.exe nécessaire dans un répertoire d'office.
Mon idée étant de surcharger la fonction remove() pour lui faire executer "setup.exe /configure uninstall.xml".
Mais là aussi je rencontre un soucis : je n'ai pas l'impression que ma surcharge fonctionne quand je run la config remove puisque j'obtiens la même erreur que ci-dessus.

Voilà mon setup.py :

Code : Tout sélectionner

from setuphelpers import *

def install():

    uninstall_key = "Standard2019Volume - fr-fr"
    office_path = makepath("C:","Program Files","Microsoft Office")
    office_uninstall_path = makepath("C:","Program Files","Microsoft Office","Uninstall")

    print("Debut")

    install_exe_if_needed("setup.exe", silentflags="/configure Install.xml", key=uninstall_key, timeout=None, min_version='')

    print('Install ok')

    mkdirs(office_uninstall_path)
    filecopyto("setup.exe",office_uninstall_path)
    filecopyto("Uninstall.xml",office_uninstall_path)

    print("Répertoire et fichiers desinstallation OK")

def remove():
    office_uninstall_path_setup = makepath("C:","Program Files","Microsoft Office","Uninstall","setup.exe")
    office_uninstall_path_config = makepath("C:","Program Files","Microsoft Office","Uninstall","Uninstall.xml")

    print('Debut uninstall')
    run(office_uninstall_path_setup + ' /configure ' + office_uninstall_path_config)

    print('uninstall OK')

Re: Surcharge fonction remove()

Posté : 14 juin 2024 - 12:45
par sfonteneau
Bonjour

Comme vous avez laisser la clé alors wapt essaie de désinstaller

ajouter a la fin de votre def install():

Code : Tout sélectionner

def install(): 
    ...
    uninstallkey.clear()
pour indiquer a wapt de ne pas essayer de désinstaller automatiquement.