Page 1 of 1

Uninstall the .msi package before installation

Published: January 11, 2021 - 6:00 PM
by emilien.gauthier
Hello,
I am new to WAPT.
I would like to install a "homemade" .msi package and have it appear in the Windows programs list.


# -*- 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
# Implicit context variables are WAPT, basedir, control, user, params, run
# If attributes in control are changed, they should be explicitly saved to the package file with control.save_control_to_wapt()

def audit():
pass
# Put here code to periodically check that the state is matching expectations
# Return "OK", "WARNING", or "ERROR" to report status in the console.
# All print statements are reported too.
Return "OK"


Before installation, I would like to uninstall this .msi file if it is present on the machine.
How can I do this?

During installation, the installer asks if I want to install the program "only for me" or "for everyone".
How can I customize the choice (checkbox) in the script?

Thank you for your help.
Best regards.

Info:
WAPT 1.8.2
OS: Windows 10

Re: Uninstalling .msi package before installation

Published: January 12, 2021 - 5:08 PM
by jpele
Hello,

In the `install_msi_if_needed` and `install_exe_if_needed` functions, you can add the `remove_old_version` option and set it to `True`. This will allow the desired operation to be performed automatically. It's worth testing; there are other methods to do this.

Regards,
Jimmy