Page 1 sur 1

Désinstallation package .msi avant installation

Posté : 11 janv. 2021 - 18:00
par emilien.gauthier
Bonjour,
Je débute sur WAPT.
Je souhaiterais installer un package .msi "fait maison" et le faire apparaitre dans la liste des programmes de Windows.


# -*- coding: utf-8 -*-
from setuphelpers import *

uninstallkey = []

def install():
install_msi_if_needed('ModelesWordSetup.msi')

def uninstall():
pass
# put here what to do when package is removed from host
# implicit context variables are WAPT, control, user, params, run

def session_setup():
print('Session setup for %s' % control.asrequirement())
# put here what to do when package is configured inside a user session
# implicit context variables are WAPT, control, user, params

def update_package():
pass
# put here what to do to update package content with newer installers.
# launched with command wapt-get update-package-sources <path-to-wapt-directory>
# implicit context variables are WAPT, basedir, control, user, params, run
# if attributes in control are changed, they should be explicitly saved to package file with control.save_control_to_wapt()

def audit():
pass
# put here code to check periodically that state is matching expectations
# return "OK", "WARNING" or "ERROR" to report status in console.
# all print statement are reported too
return "OK"


Avant l'installation, je souhaiterais désinstaller ce .msi s'il est présent sur le poste.
Comment faire ?

Lors de l'installation, l'installeur demande si je souhaite installer le programme "seulement pour moi" ou 'pour tout le monde".
Comment personnaliser le choix (case à cocher) dans le script ?

Merci pour votre aide.
Cordialement.

Info :
WAPT 1.8.2
OS : Windows 10

Re: Désinstallation package .msi avant installation

Posté : 12 janv. 2021 - 17:08
par jpele
Bonjour,

Dans la fonction install_msi_if_needed et install_exe_if_needed vous pouvez rajouter l'option remove_old_version en True. Cela permettra d'effectuer automatiquement la manipulation souhaité. A tester, il existe d'autres méthodes pour le faire.

Cordialement,
Jimmy