Best practices for deprecating an MSI in a standard bootstrapper app and moving files into another existing MSI in the bootstrapper? #8533
Replies: 2 comments 3 replies
-
Has the old MSI been uninstalled before installing the new combined MSI? If they are still being installed to the same location and the GUIDs remain the same but the old MSI is not uninstalled my expectation is they would not be installed. Because of component rules. |
Beta Was this translation helpful? Give feedback.
-
Well, the files were being installed into the same directory, and the guids (where they existed) were different between the original 2 MSIs. The new combined MSI now has IDs on both file and components, rather than the files being combined under a handful of components. Order may well be a factor. The installer uses a major upgrade, so my understanding of uninstall/install order (for a bundle with 2 MSIs a & b) is :
as opposed to
Therefore if in the above example b.msi is deprecated / removed from the bundle, then assuming the process thinks the files (now in a.msi) are referenced already, then they won't get installed by a.msi, and then they won't be re-installed by b.msi since b.msi won't get re-installed since it's no longer in the bundle? I'm not sure how I can get around that? (apologies if my explanation / understanding is lacking! ) |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
We have a Wix Standard Bootstrapper App Installer created with Wix 314, which contains five MSI packages. Which packages are installed can be selected on first installation. All upgrades are major, and we use the remember pattern using the registry to ensure that only those MSIs selected on first installation are subsequently upgraded (in passive mode).
One of the MSI packages no longer makes sense to be a separate choice, so I would like to remove that MSI and include the files in one of the other MSI's as the functionality logically fits.
What would be the best practice in doing this so that the major upgrade "just works" ? I've already tried this by moving the components over but they are not being installed, so I have obviously missed something.
Unfortunately the files in the original (to be deprecated) MSI were all put under one component, so did not have their own File Id or Component Id if this matters / helps, like this:
The moved components now have their own Id's:
I can't see anything in the logs as to why the "new" files (moved from the deprecated MSI) aren't being installed, for instance for Newtonsoft.Json.dll which is one of the new files thats not installed:
doesn't seem to be any different to one that IS updated:
NB Currently none of these newly changed Bootrappers are Live, only internal, hence why I'm after a best practice as what I have tried has failed.
Many thanks.
Beta Was this translation helpful? Give feedback.
All reactions