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: Can a Basic MSI project be used to update an InstallScript MSI project?
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
Feb 21, 2009
02:11 PM
Can a Basic MSI project be used to update an InstallScript MSI project?
I have been investigating whether it would be possible to use a BasicMSI project to update an existing product that was originally installed with an InstallScript MSI project. This is because I anticipate using AdminStudio to repackage existing InstallScript msi projects into basic msi projects, for products that customers already have on their computers.
Even though I've been careful to observe all the usual upgrade rules regarding version number, product code, upgrade code, etc., a variety of errors occur when I apply the upgrade. I've experimented with major as well as minor upgrades, always using the Automatic upgrade type.
I've tried upgrading via the setup.exe wrapper as well as using the *.msi file with command-line parameters, but no luck with anything so far. I'm beginning to think the technology was never meant to support this. But I should point out that I manually converted the InstallScript msi project I'm testing; I didn't actually use AdminStudio -- so it could be developer error!
Feedback/suggestions? Am I attempting something that should be avoided, or is not a best practice?
Even though I've been careful to observe all the usual upgrade rules regarding version number, product code, upgrade code, etc., a variety of errors occur when I apply the upgrade. I've experimented with major as well as minor upgrades, always using the Automatic upgrade type.
I've tried upgrading via the setup.exe wrapper as well as using the *.msi file with command-line parameters, but no luck with anything so far. I'm beginning to think the technology was never meant to support this. But I should point out that I manually converted the InstallScript msi project I'm testing; I didn't actually use AdminStudio -- so it could be developer error!
Feedback/suggestions? Am I attempting something that should be avoided, or is not a best practice?
(1) Reply
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
Feb 23, 2009
08:40 AM
We've converted all of our installations to Basic MSIs and most of them started out as InstallScript MSIs. The main issue I've found in a major upgrade is that the new MSI can automatically run only the MSI uninstall, not the script engine uninstall. So if you've set anything in the script that the old uninstall needs the MSI uninstall might not run correctly, or if you made any system changes through the script in the original install (XCopyFile or RegDBSetKeyValueEx, etc.), the MSI uninstall won't remove them.
If you don't have a big concern with users running your install silently, we've had some luck with setting up a custom action in the UI sequence to run the scripted uninstall before the Execute sequence tries to run RemoveExistingProducts.
In other cases, we had to include MsiZap.exe in our support files, set up a custom action before RemoveExistingProducts to remove the Windows Installer traces of the previous installs, then use the RemoveFile and RemoveRegistry table to delete resources that the MSI couldn't or wouldn't uninstall.
If you don't have a big concern with users running your install silently, we've had some luck with setting up a custom action in the UI sequence to run the scripted uninstall before the Execute sequence tries to run RemoveExistingProducts.
In other cases, we had to include MsiZap.exe in our support files, set up a custom action before RemoveExistingProducts to remove the Windows Installer traces of the previous installs, then use the RemoveFile and RemoveRegistry table to delete resources that the MSI couldn't or wouldn't uninstall.