This is something that bit us over the weekend as we attempted to install two new SQL Server 2008 Enterprise Edition instances on a Windows Server 2003 failover cluster. The cluster already had existing SQL Server 2005 instances, but I don't think that matters. In any case, we went to run setup and it told us we needed to install the .NET Framework 3.5 SP1 from the Microsoft web site. We did that (but you shouldn't, and I'll explain why shortly). It didn't matter if we used the bootstrap of the full download version of 3.5 SP1, we received the error detailed in the following KB article:
Error message when you try to install a security update for the .NET Framework 2.0 on a computer that is running Windows Server 2003 x64 Edition: "Error 1324. The folder 'Program Files' contains an invalid character"
Following the instructions as best as possible, such as taking away the drive letter from the DVD-ROM drive, didn't work. Because we had a short install window before the 2005 instances needed to be online for production, we engaged Microsoft Premier Support. There wasn't a technician readily available, so we were put in the queue for a callback as soon as one freed up. While we waited, we tried several permutations and what finally did work was when every drive letter of the cluster was up and running on the physical node we were trying to install the .NET Framework 3.5 SP1 on. We finally got the installation done on both nodes and that's when we got the call back from Microsoft Premier Support. The first directive was to uninstall the version of the .NET Framework pulled from the web. Ouch!
The technician said they had seen issues when anything other than the .NET Framework version on the SQL Server 2008 CD/DVD was used. So he pointed us to them. If you're not sure where they are at, if you look on the CD/DVD, you should see three directories at root:
Go into the folder matching your processor. You'll see a redist folder. The two folders you'll care about within this folder are:
Inside DotNetFrameworks is the installer for the .NET Framework 3.5 SP1 that is appropriate for SQL Server 2008. Look for the file dotNetDx35setup.exe. Once that installation is complete, go into the Windows Installer folder and you'll see another folder corresponding to the processor you've chosen. Inside that folder is the install file INSTMSI45.EXE. Once both of those installs are done, you can proceed with the SQL Server 2008 installation.
I haven't found any official documentation on why the .NET Framework version included with the SQL Server 2008 CD/DVD should be used, but I'll keep an eye out. As I said, this all came about due to an interaction with Premier Services (I cleared that it was okay to post this before doing so). We've used the Microsoft .NET Framework 3.5 SP1 downloaded version on another cluster and didn't experience any issues, so YMMV.