Changing An Installer From Per-User to Per-Machine
Posted 05 September 2003 - 06:25
I also changed the product code guid and product version to signify a major upgrade. The upgrade from the per-user installation to the per machine installation did not behave as well as the new installation did.
I used msiexec /i foo.msi to execute the upgrade.
The problem occurred during the uninstall. Uninstall completed without issue but left the product entry in the ARP. Attempting a second remove results in a pop up about the product not being installed properly. I had to clean up the registry by hand in order to correct the problem.
So my question is:
Is it possible to switch an installer from per-user to per-machine and have an upgrade remove the per user information from the registry?
Posted 05 September 2003 - 15:09
In addition I think you need to run the uninstall of the old version with ALLUSERS=0.
Posted 05 September 2003 - 21:17
Posted 05 September 2003 - 22:13
Posted 07 September 2003 - 03:41
Here is how I addressed this and I was wondering if you can think of anything that I might have missed.
Ensure that ALUSERS is null or missing from Property table
Create a custom action - SetPerMachine 51 ALLUSERS 1
Sequence SetPerMachine after FindRelatedProducts in InstallExecute and InstallUIExecute
This is a Windows NT/2000 Server and above application so it won't violate the warning about Win9x. It also isn't the ideal fix because upgrading the application as USER2 after USER1 installed it leaves a small amout of USER1's install around. The stuff that is left over (USER1's install registration) is not visible to an end-user and we are not seeking certification with this release.
Same user installs and upgrades over the old per-user install works as expected and the subsequent uninstall removes all trace of the applcation from the system. The per-machine aspect is also correct in that an install by USER1 of the new version can be removed by USER2. (Both USERS have administrative rights.)
I intend to address this further with a more complete solution once there is more time.
The msi also passed the "Full MSI Validations" in orca.
Is there something else I should be concerned about?
Posted 07 September 2003 - 03:43
msiexec /x [ProductCode]