This website uses cookies. By clicking Accept, you consent to the use of cookies. Click Here to learn more about how we use cookies.
Turn on suggestions
Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.
- Revenera Community
- :
- InstallShield
- :
- InstallShield Forum
- :
- Re: How to automate building MSI packages for small updates?
Subscribe
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Subscribe
- Mute
- Printer Friendly Page
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
Mar 05, 2012
07:56 AM
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.
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.
(2) Replies
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
Mar 05, 2012
08:23 AM
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.
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.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
Mar 06, 2012
01:34 AM
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.
This solved my problem. I've decided to use the major upgrade solution and added a major upgrade item which works fine.
![](/skins/images/7674467D6278680F3FD526C8217C9173/responsive_peak/images/icon_anonymous_message.png)