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.

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')