Current version

v1.10.4 (stable)


Main page
Archived news
Plugin SDK
Knowledge base
Contact info
Other projects


Blog Archive

Windows Installer... well, you know

I've never kept it a very good secret that I don't like Windows Installer. It's slow, it eats an unreasonable amount of disk space for caches and even more disk space during installation (>3x install footprint), it throws errors that are cryptic even to programmers, and it has lame limitations like needing to map the entire installer into contiguous address space on XP. My experience installing VS2005 SP1 was so bad that I now keep around a slipstreamed install just so I never have to run the horrid patcher again. I believe I've found a new reason to hate it:

If TARGETDIR itself isn’t redirected, it defaults to ROOTDRIVE which is the fixed drive with the most free space available, and “fixed drive” doesn’t necessarily mean its an internal drive. External drives these days are growing more common. Any descendants of TARGETDIR are also located relative to ROOTDRIVE then.

So if you have an external drive with a lot of free space connected when you installed Visual Studio, a number of components may have gotten installed there. Even if you do not see any files mysteriously appear after installing Visual Studio, components may still have gotten registered to the other drive. This can actually happen for any Windows Installer products.

If I understand this correctly, this means that if I'm on a system where the system drive is C:, the Program Files directory is on C:, and I tell the installer that I want Visual Studio installed on C:, the default behavior for the install system unless overridden by the install script is to install onto the external backup drive H: that I just happened to have plugged in. This might explain why I keep finding weird installation folders like Office10 in places such as my data drive and video capture drive that I explicitly do not want programs installed into!

Could someone at Microsoft pleeeease write a better install system....


This blog was originally open for comments when this entry was first posted, but was later closed and then removed due to spam and after a migration away from the original blog software. Unfortunately, it would have been a lot of work to reformat the comments to republish them. The author thanks everyone who posted comments and added to the discussion.