Summary
This article describes methods of working around a situation where a previous version was released without certain concessions being made for a Major Upgrade.Synopsis
This article describes methods of working around a situation where a previous version was released without certain concessions being made for a Major Upgrade.Discussion
Common scenarios in which a previous version of a product might fail to account for a Major Upgrade are:
- A custom action conditioned to run during uninstallation.
- Certain files erroring during un-self registration
- Some components not being marked as 'Permanent' so as to maintain user customization.
There are a few of methods to work around this behavior, depending on what you are attempting to account for:
2. Perform a 'Manual Major Upgrade' by invoking the UninstallString of the previous version silently during the package's UI sequence or OnFirstUIBefore Event Handler (in the case of an InstallScript MSI project). This is also a recommended method, since you would be able to implement similar Before-And-After functionality for backing up and restoring data. For reference: Performing a Major Upgrade with Installscript .
3. Using a small update patch to transform the cached image on the target machine. This is accomplished by:
--Making a copy of the base MSI package
--Modifying the package in Direct Edit mode according to the problem area
--Specifying the base package, and modified package as 'Previous' and 'Latest' versions in a Patch Configuration
--Launching the patch silently in the UI Sequence or from a Setup Prerequisite
--If launched from a custom action, conditioning the action off of the Action property specified in the Major Upgrade item (typically 'ISACTIONPROP1', or similar)
4. Using Windows Installer API's to apply an *.mst file authored in InstallShield to effect the changes. The overall approach to this would have to be wrapped up in a custom C++ Executable or a Setup Prerequisite.
--Determine the previous package's Product Code. This might be static, but you can as well iterate through the registry looking for an Upgrade Code, or even pull the Product Code from the Action property (again, 'ISACTIONPROP1' or similar).
--Using the Product Code, use the MsiGetProductInfo function to find the cached MSI location with the INSTALLPROPERTY_LOCALPACKAGE flag:
--Use the MsiDatabaseApplyTransform function to apply the *.mst to the cached MSI package:
Was this helpful?
Related Articles
Expected Behavior of InstallScript Feature Selections 3Number of Views Launch a Custom Executable 16Number of Views How to Configure a Major Upgrade 6Number of Views Launch an Executable Using a Custom Action 3Number of Views Windows Add/Remove Programs lists MongoDB 4.2.13 after Snow License Manager 9.27.1 upgrade 41Number of Views
Revenera Assistant
Online
Hi, I am Reva - Ask me anything.
Updates
No new updates
Chat
Home
Updates
/**/
Thanks for the feedback!
Your feedback has been saved.Rate this response:
1
2
3
4
5
Add Additional feedback ( Optional )
0/240
English
English
Language changed successfully
Something went wrong
Email sent successfully
Something went wrong
Case create successfully
Are you sure you want to cancel
the case creation?
Please select a product to submit the case.
Please select a product version to submit the case.
0/255
Upload Attachment
File Upload
Maximum file
size allowed is 3 MB.
File type
not supported.
Supported file types:
Documents (.txt, .doc, .docx, .pdf), Images (.jpg, .png), Comma Separated Files
(.csv) Speadsheets (.xlsx, .xls)
Are you sure you want to cancel the case creation?
Case closed successfully
File Upload
Maximum file size allowed is 3 MB.
File type not supported.
Supported file types:
Documents (.txt, .doc, .docx, .pdf), Images (.jpg, .png), Comma Separated Files
(.csv) Speadsheets (.xlsx, .xls)
Are you sure you want to close this case
| Products | Region | Phone Numbers |
|---|---|---|
| FlexNet Operations FlexNet Embedded FlexNet Publisher FlexNet Connect FlexNet Code Insight InstallAnywhere InstallShield |
North America * |
+1 630-332-2513 (toll) +1 877-279-2853 (toll-free in North America) |
| Europe * |
+44 1925 944367 (toll) +44 800 047 8642 (toll-free in Europe) |
|
| Japan * | +81 3-4540-5335 (select option 2) | |
| Australia * |
+61 3 9895 2177 +61 1800 560 603 (toll-free in Australia) |
|
|
Usage Intelligence (formerly
Revulytics) Compliance Intelligence |
Please use the Case Portal to submit your support ticket or reach out to your Revenera contact. | |
File Upload
Maximum file
size allowed is 3 MB.
File type
not supported.
Supported file types:
Documents (.txt, .doc, .docx, .pdf), Images (.jpg, .png), Comma Separated Files
(.csv) Speadsheets (.xlsx, .xls)
© 2026 Flexera Software. All Rights Reserved.
Case id: 00001065
Activity: Status change: 2 hours ago