cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Softship
Level 2

How to automate building MSI packages for small updates?

Hi,

I have some trouble with automatically building MSI packages for small updates of our products. In the past we used Wise Installer to create our setups and had a simple workflow:

1. Create the Wise script (and the never touch it again)
2. Build the application (our product)
3. Run Wise command line tool to create the setup
4. Install setup at customer
5. Change source code of our application (to fix bugs or add new features)
6. Go to (2)

This means we always delivered the complete application which overwrote the old installation at the customer.

Now we decided to use InstallShield instead of Wise and to deliver MSI files. I've created a Basic MSI project with InstallShield 2012 Professional Edition. But it seems our Wise workflow can't be applied here, because the updated version of our product won't overwrite the previous version.

For the first time installation anything is fine. But when I build a new version of our application and then build a new MSI using the following command

IsCmdBld.exe -p "C:\InstallShield 2012 Projects\IRISPAY\IRISPAY.ism" -c COMP -e N

the customer gets the following error message when running the new MSI:

Another version of this product is already installed.
Installation of this version cannot continue. To
configure or remove the existing version of this
product, use Add/Remove Programs on the Control
Panel.


I've spent several days reading this forum and various others, but didn't find a suitable solution.

What I found (but didn't solve my problem) is:
- Create setup.exe instead of MSI file
-> The customer wants a single MSI file; no setup.exe

- Enforce overwriting old version using MSIEXEC /i "IRISPAY.msi" REINSTALLMODE=vomus REINSTALL=ALL
-> The customer simply want to doubleclick the MSI; no batch file or DOS box to install the application

- Changing package code (according to IS help this is all that has to be done for a small update)
-> Didn't solve the problem at all (still same error message)

- Changing package code and product version (minor upgrade)
-> Didn't solve the problem at all (still same error message)

- Changing package code, product version, and product code (major upgrade)
-> We can install the new version now, but now it appears twice in "Add/Remove Programs"

What am I doing wrong? I've seen MSIs created with VisualStudio that behave exactly in the way I want by setting the "RemovePreviousVersions" option. But in InstallShield I don't have such an option. Is there anything similar in InstallShield? Something like a command line option for IsCmdBld.exe that automatically creates an update if I only changed the application files (if possible I don't want to change the ISM file everytime I build a new application version).

Thanks.
Labels (1)
0 Kudos
(2) Replies
MichaelU
Level 12 Flexeran
Level 12 Flexeran

The error you see is due to installing a minor upgrade without the correct parameters. Normally the correct parameters are passed by the setup.exe bootstrap. However there are workarounds you can place in the .msi including specifying REINSTALL=ALL, and resetting REINSTALL to empty with a custom action if Not Installed.

I would probably recommend the major upgrade approach you describe in your last bullet; just be certain to include a Major Upgrade item in your new .msi configured to remove the previous version. This will avoid the result of two entries in ARP.
0 Kudos
Softship
Level 2

Thanks for the fast reply!

This solved my problem. I've decided to use the major upgrade solution and added a major upgrade item which works fine.
0 Kudos