Page 1 of 1

Installing MSI with an MSP update

Published: February 3, 2017 - 7:47 PM
by f4242
Good morning,

I am deploying the Antidote software. It is provided using an MSI for the basic installation, then updates are provided as MSP files which must be passed with the /update argument of msiexec.

I thought about using the "properties" variable of the "install_msi_if_needed" function for this, but it doesn't work because it adds a ":" after /update (which is expected to define a property, so it's not a bug in itself).

I haven't found a way to specify an additional option for msiexec using the "install_msi_if_needed" function. I suggest adding an "options" variable to the "install_msi_if_needed" function so that additional options can be defined for msiexec.

To bypass the problem, I deployed my application using the "run" function.

Code: Select all

def install():
    print('installing antidote9-fr')
    path = os.path.dirname(os.path.realpath(__file__)) + '\\'

    # ne fonctionne pas, ne supporte pas /update
    #install_msi_if_needed(msi=base_msi, killbefore=antidote_apps, properties={'/update': path + update_msp, 'TRANSFORMS': 'Reseau.mst'})
    #install_msi_if_needed(msi=base_msi_fr, killbefore=antidote_apps, properties={'/update': path + update_msp_fr})

    killalltasks(exenames=antidote_apps)
    run('msiexec /norestart /q /i ' + base_msi + ' /update ' + path + update_msp + ' TRANSFORMS=Reseau.mst')
    run('msiexec /norestart /q /i ' + base_msi_fr + ' /update ' +  path + update_msp_fr)