I took a side trip through Windows Installer 3.1 Hell today. I didn’t intend to, but when you’re a Windows developer and user, these things tend to happen, and at the most inconvenient times.
I had a Win XP SP2 test machine where Windows needed to be repaired, and being very adventurous, I booted from the XP SP2 CD and chose to do a Repair installation. I hadn’t done one in a long time and had forgotten that it’s scary as hell to do.
The repair went off without a hitch. Except for the fact that I needed to go to Windows Update and get all the updates. Okay, I thought. There goes a couple hours of my time. But, I didn’t get off that easy. I couldn’t update anything because I needed Windows Installer 3.1. I thought that wouldn’t be much of a problem, and I was wrong there too.
No matter how many times I tried, it would get 3/4 of the way through the WI 3.1 install, and then give an “Access Denied” message. When you get that, it rolls back the changes, and then you have to restart Windows.
I went to the net for a couple hours and tried many unsuccessful solutions that I won’t go into. Eventually, I ran into the solution. When you do a Repair installation of XP SP2, if leaves you with only the Everyone account configured. And that is the reason Windows Installer 3.1 won’t install. Because you need to add your user account to do it.
To do this, you run regedit, click HKEY_CLASSES_ROOT, then in the Edit menu select Permissions. You will see that the only listing is for Everyone. The article I read said to add Administrator and SYSTEM, and give them Full Control. Then add your user account and do the same.
After I did all that, I was able to install Windows Installer 3.1 with no problems.
Hopefully, this will save somebody some trouble in the future.
P.S. Yes, I know this post was about the Windows Installer, and this is supposed to be an InstallShield blog. However it is related, since it deals with an installation problem.
P.S.S. Here’s the article I referred to. I only performed Step 2 for my particular problem: