Ho creato un pacchetto per l'installazione di Office 2019 tramite officedeploymenttool e sto fornendo la chiave di disinstallazione nei parametri della funzione install_exe_if_needed().
L'installazione è corretta, ma quando eseguo un comando di rimozione per disinstallare, ottengo il seguente errore:
Codice: Seleziona tutto
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.
Quindi, come soluzione alternativa, ho creato un file di configurazione uninstall.xml che consente la disinstallazione della mia versione di Office e, durante l'installazione, copierò questo file e il file setup.exe necessario in una directory di Office.
La mia idea è di sovrascrivere la funzione remove() per farla eseguire "setup.exe /configure uninstall.xml".
Ma anche qui riscontro un problema: non ho la sensazione che il mio override funzioni quando eseguo config remove, perché ricevo lo stesso errore di cui sopra.
Ecco il mio setup.py:
Codice: Seleziona tutto
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')
