My Visual Studio 2008 setup project is changed so that merge modules for MFC and VC have replaced DLL’s that were installed manually in the installation folder. I’m okay with merge modules, but there is a problem. In previous setup user could choose between “Everyone” and “Just me”. In new setup this choice has no effect, and installation is always for everyone because of merge modules, which must be installed for everyone. So, if previous installation was “just for me” then new installation does not remove DLL’s of previous installation, and in Control Panel there are two installations with the same name.
In setup project of new version ProductCode is changed, UpgradeCode is not, RemovePreviousVersion is set to true, and Version is higher than it was before.
If I exclude merge modules from setup, and install new version “just for me” then all is well. Old files are removed, and there’s only one installation in Control Panel. But I would rather not burden users with separate installation of redistributable packages.
How can I in Visual Studio 2008 setup have both merge modules, and instruct setup to remove previous version, even though previous version was “just for me”, and new is for “everyone”?
Mаybe better question would be what would you do in my place to resolve this issue?
Windows Installer (handler of MSI files) will not uninstall one product during the installation of another. Also, the same installation is viewed as two different products when installed both per user (“just me”) and per machine (“everyone”). It is therefore nothing you can do from .msi to uninstall old per user installation if new is to be installed per machine.
Options are, ordered by preference: