I have a test installer and I have created a second instance of it. I also create a test patch for it. The following steps are run:
- Install the release build: msiexec /i TestInstaller.msi /qb
- Install the patch: msiexec /p PatchConfiguration1.msp /qb REINSTALL=ALL REINSTALLMODE=oums
- Attempt to install the instance release build: msiexec /i TestInstaller.msi TRANSFORMS=:InstanceId1.mst MSINEWINSTANCE=1 /qb
- I get an error: A newer version of this application is already installed on this computer.
It will be a requirement for our users to have the option to install and patch one instance at a time. However, from what I'm seeing, msi is requiring you to have both instances installed at the same time, and only then will you be able to update your installs. Is there a way that allows you to install and patch one instance at a time?
Issues with Multi-Instance upgrades are usually caused by shared files between each instance. You may need to make sure that each instance is using isolated files, for example add a different INSTALLDIR property value to each new instance.
Microsoft state that:
"If a product code remains unchanged, only one instance can be installed in the machine context and only one instance can be installed in each user context.
For multiple instances to remain isolated, they must have different product codes and cannot share file data or nonfile data."
Special Considerations for Multiple-Instance Support:
Thank you for your reply. I am using a different ProductCode for my base install and the instance. The Install directory is also different. In my first iteration, I did have a couple files that both the base and instance installed, but they were installed to their separate install directories. However, in my latest test, I stripped it down as simple as possible. I have:
- First Product that installs one file in its install dir.
- Second Product (which is the instance) installs two files in its install dir.
- My "Common" feature has a release flag "DONOTBUILD" so it's not even getting included.
- Each feature contains its own set of components, each component is set to "Shared".
So, I am not sharing any files or data between the base and instance installers. Yet, if I install First Product, then patch it, I am not able to install Second Product. Here's some screen shots of what I have. If you would like more information just ask.