available for Microsoft Windows. Like a good little Windows user, I decided to be proactive and go grab 'em right away instead of waiting for them to be automatically downloaded.
site. Of course, the first thing it did was complain about my browser (Firefox) and recommended that I update to the latest version of Internet Exploder. OK, I'll play along ... I fired up IE and went to the update site and told it to give me the latest and greatest.
Everything went perfectly. So how is this an illustration of why I hate Windows? Primarily because of what happened when I went to apply the same updates to my desktop machine at the office.
Everything appeared to be proceeding smoothly after initiating the usual "download and install" routine, until it decided it needed to update something with the Microsoft .NET Framework. At some point in the process, Windows had what us technical types like to refer to as a "brain fart". A dialog popped up which dutifully informed me of the following:
The feature you are trying to use is on a network resource that is unavailable. Click OK to try again, or enter an alternate path to a folder containing the installation package 'netfx.msi' in the box below.
I thought it a bit odd, since this file is apparently so darn important to the update, that it wasn't packaged with it. But who am I to question Microsoft? The dialog further indicated that it was expecting to find the file in question in the directory C:\DOCUME~1\easberry\LOCALS~1\Temp\IXP000.TMP. The first thing that I wondered was what IXPooo smelled like. The second thing I wondered was if the directory actually existed. It didn't.
"Where oh where shall I find the legendary netfx.msi file?" Since Google is my friend (we have fascinating conversations almost daily), I did a bit of searching and arrived at what seemed to be the solution. What I needed to do was download the .NET Framework "redistributable" from Microsoft. I could extract the netfx.msi file from the compressed EXE file and point the update installer dialog there.
It was a well-researched and brilliantly conceived strategy. Needless to say, the plan's execution resulted in abject failure.
I used trusty old WinRar to extract the indvidual files from the EXE. My sunny optimism was further bolstered when I saw that, indeed, one of the files was called "netfx.msi". "Victory shall be mine!" I thought aloud, provoking a concerned glance from anonymous coworker #516 who happened to pass my cubicle at that moment. Perhaps it was the subdued yet maniacal laughter that accompanied my thought. But I digress.
That nice little Windows update install had been patiently waiting all this time for me to point it to the proper location of the netfx.msi file. I've always believed that patience should be rewarded, so I pointed it to the freshly extracted file. The install churned for a minute or so, and in an act of complete and utter thanklessness for feeding it the file, it told me:
The file 'netfx.msi' is not a valid installation package for the product Microsoft .NET Framework (English). Try to find the installation package 'netfx.msi' in a folder from which you can install Microsoft .NET Framework (English)
"Try to find the package"? Are you kidding me? I just told you where it was! I thought perhaps I had stuttered or something when I hit the OK button, so I told it to look there again. Because, as we all know, when you do the exact same thing over and over it's only natural to assume that subsequent attempts will yield different results. Especially if you repeat the action angrily. In this case, my attitude didn't seem to have any effect, as it kept repeating it's request over and over.
I decided I wanted out. Maybe something was corrupted and I needed to install that "redistributable" doohickey, and re-run the update. So I told the dialog to cancel the install.
First it told me:
Error 1706. No valid source could be found for product Microsoft .NET Framework (English). The Windows installer cannot continue.
What happened next was truly magical! The progress bar started moving backwards! I was traveling back in time! I don't believe I've ever seen a progress dialog go backwards before. Perhaps it's some kind of subtle Windows metaphor. I discovered, unforunately, that when you travel back in time with Windows, when you hit the point in time where you can travel back no further, it's as if you hit an invisible trampoline. Or one of the walls in my padded cell. Time immediately begins rushing forward again!
The once full grown progress dialog turned into a small child, then a baby, then a fetus and finally disappeared completely. But then, like magic, the flow of time resumed in the forward direction. The fetus reappeared, then the baby, the small child, and finally, once again the senile adult appeared (I'm still talking about the dialog here, not myself) and it prompted me for the netfx.msi file again. And the reincarnated dialog didn't like the file I pointed it at any more than its predecessor did.
So, I quickly concluded that this dialog was an evil demon from hell and was never going to go away. I thought, perhaps, while it was prompting me for the file, I should try to go ahead and run that "redistributable" install. Maybe the "redistributable" would run through and do its magic, and then once it was done, I could let the demon-from-hell update finish and everything would be fine. Oh, how comically naive of me.
When I started the "redistributable" install it told me that "Another installer is running" and refused to go further. But it did give me the option to "Retry" or "Cancel". What happened next was much like playing a finger twitching video game. I canceled the first dialog and let it start traveling through time again, while at the same time clicking the Retry button on the second dialog, hoping that it would get a chance to run at that instant in time after the fetus disappeared but before it reappeared. Following me?
So, the demon-fetus disappeared, and the redistributable installer fired up. As it started churning, Windows informed me that the demon-update ....
Application has generated an exception that could not be handled. Process id=0x284 (644), Thread id=0xcc4 (3268). Click OK to terminate the application. Click CANCEL to debug the application.
No problem. I canceled the update. The second install finished after only a few moments and informed me that "Installation of Microsoft .NET Framework 1.1 is complete." I was a little suspicious, because the install ran really fast. But I decided since there were no errors, surely all must be well.
The update process seemed to have halted completely as a result of canceling that first dialog (the hell-spawn, as it were). So I clicked on the little yellow security shield to finish the update process and it told me that the updates had failed to install. Boy, that was some useful status information!
I went through everything again with the updates, got to the point where it prompted me for the netfx.msi file and, surprise surprise, it told me it still didn't like my file. I was suddenly struck with divine inspiration. "Maybe the file has to be located in that non-existent directory it's pointing to for some bizarre reason". So I created the directory, copied the netfx.msi file there, and continued to get the same result. So much for inspiration.
I went through the cancel/"updates failed"/"Installer crashed" routine again. I really wanted to get these security updates installed so I decided to try, try again. This time I chose a "custom" update install, so that I could pick which updates to actually install. I looked at the details for all the updates to see if I could figure out which one of the was causing the .NET Framework update. None of them seemed to be obviously tied to it, but on a hunch, I opted not to install the "Malicious Program Removal" utility. After all, if I ran that, it would probably erase Windows entirely, and I was having enough problems! It seemed to be a good choice, because I finally managed to get all the way through the update process for the remaining updates.
Windows prompted me to reboot to put the new updates in effect. After the reboot, I checked Windows Update again, and it informed me that I needed the following updates:
Microsoft .NET Framework 1.0 SP3
Microsoft .NET Framework 1.1 SP1
Hmmm. I wondered if maybe the problem was that I had a 1.0 and 1.1 version of the .NET stuff installed. So I decided to try something new. I went to Add/Remove Programs and told it to uninstall the entries for .NET 1.0 and .NET 1.1. Then I checked Windows Update again. It told me there were now no updates needed.
Now, were I bright, I probably would have declared victory and stopped right there. But I decided I really wanted to get this .NET stuff going. So, I ran that "redistributable" thingy that I had downloaded earlier. I was encouraged, because this time it ran for a few minutes instead of a few seconds, and I could see that it was copying files and writing registry entries. Once it completed, I decided to check Windows Update again, and now it told me I needed .NET Framework 1.1 SP1. Obviously I was on [to] something!
I crossed my fingers and told it to apply the update. And this time, by golly, it didn't prompt me for any silly files at all. Instead, it popped up a dialog which started out:
Application has generated an exception that could not be handled ....
Yeah, I was definitely getting to the point where I couldn't handle it anymore. "Wait!" I thought to myself. I just installed the framework. Obviously I needed to reboot! I mean, this is Windows, right? So, I rebooted, re-ran the updates and ... same a' ting.
I give up. I hate Windows. Bill Gates is the anti-Christ, I'm sure of it. I guess it's time for a complete operating system reinstall. Or maybe I'll just ignore it. I don't think I even need the stupid .NET stuff anyway. This kind of crap really makes you want to go live in a one room shack in the woods.
And this, my loyal reader, is one (more) reason why I hate, despise and utterly loathe Microsoft Windows.