[RESOLVED] MSI and VB6 dlls regsvr32 all users
I have created an MSI using VS2003 to install a couple of vb6 Office add in dlls and one vb6 dll.
I'm using ORCA to open up the msi and add the allusers options but it doesn't seam to work for me.
Am I doing something wrong or is there another step.
Also the same happens if I create a new user on the machine. The dlls aren't registered.
The add in doesn't work. If I use regsvr32 on all the dlls its fine again.
This is just about ok at the minute as we're only in testing. But this won't do when we give to the client.
I'm not a vb6 expert so don't completely understand the whole proccess.
Re: MSI and VB6 dlls regsvr32 all users
The results vary based on the value of ALLUSERS, the installing user context, and the OS. You might look at Specifying a Per-User or Per-Machine Installation and see if it sheds any light on your situation.
Re: MSI and VB6 dlls regsvr32 all users
According to that link, this is the following
Windows XP: If the user has user access privileges, and ALLUSERS=2, Windows Installer performs a per-user installation and uses the folders in the user's profile.
I'm installing the dlls to the system32 directory. Does that have an effect.
Surely it can't be that hard to have an application installed for all users or am I going about it the wrong way.
Re: MSI and VB6 dlls regsvr32 all users
I think that article is trying to say:
ALLUSERS=0 (or not specified)
Do a per-user install for the user running the installation. Register components in HKCU.
ALLUSERS=1
Do a per-machine installation. This requires administrator rights.
ALLUSERS=2
If the user is an admin, do a per-machine installation, otherwise do a per-user installation.
If on Win2K accomplish this by first trying a per-machine install and if it fails try a per-user install.
If on WinXP accomplish this by checking the user's credentials first and choosing one or the other.
If on Vista always attempt a per-machine installation and request the necessary credentials via UAC prompt if UAC is enabled, otherwise fail if the user is not an admin user. ALLUSERS=2 MSIs were used by malware as a mechanism to probe a system's defenses, and in hindsight were a bad idea.
So I believe the answer is "If you want to install per-machine, set ALLUSERS=1 and run the installation from an administrator account." The whole point is to prevent standard users from writing component registration into HKLM, which is a known attack vector for infection and abuse.