cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
gridman
Level 8

Minor Upgrade question

I have a Basic MSI project and have created a minor upgrade for an earlier release. The minor upgrade works fine in that it upgrades the application. For the upgrade, I changed the version number in the application and also changed some other files. I created a new component which holds the app with the changed version number, but I left the old component there with the old version of the app in the project. When the upgrade is performed, the new files are added and the new version of the app is added. Everything works fine.

However, if I convert this minor upgrade into a patch, the patch installs correctly and works, but when I uninstall the patch (right now testing this on Vista) the application is removed. So, the problem goes back to the minor upgrade. I think it's a design issue.

I thought since I didn't delete any components or features, that the upgrade would be correctly classified as a minor upgrade. Is this correct?
Labels (1)
0 Kudos
(1) Reply
joshstechnij
Level 10 Flexeran
Level 10 Flexeran

You are correct in that a minor upgrade does not allow components or features to be deleted. Attempting to delete components would require a major upgrade.

However, since new component(s) are being added with, effectively, new files, an uninstallable patch looks at any File table records that didn't exist in the base MSI during patch uninstall and deletes them from the machine. To create an uninstallable patch, the minor upgrade should update the existing file and not add any new File table entries to perform the update (which is generally how we would recommend authoring a minor upgrade). You can do this by replacing the file in the project in its existing component, replacing the source file that is pulled in a build, or changing the path variable used to locate the source file to point to a path containing the updated file.
0 Kudos