
I spend nearly all my time working on a Mac. Given the nature of cross-platform development I do sometimes require use of a Windows machine. Not too long ago I was upgrading to Visual Studio 2008 when I found a horrible bug in the installer.

I didn't want any Visual Basic or C# crap littering my machine. So I disabled those options, leaving only the C++ tools to be installed. Installation completed and I fired up the compiler only to get the following error message:
Compiling... Project : error PRJ0003 : Error spawning 'cl.exe'.
Uh.
That's not supposed to happen.
Let's take a closer look:
C:\Program Files\Microsoft Visual Studio 9.0\VC\bin>dir
Volume in drive C has no label.
Volume Serial Number is 104F-0033
Directory of C:\Program Files\Microsoft Visual Studio 9.0\VC\bin
04/05/2009 09:48 AM <DIR> .
04/05/2009 09:48 AM <DIR> ..
04/05/2009 09:46 AM <DIR> 1033
04/05/2009 09:48 AM <DIR> amd64
11/08/2007 08:19 AM 165,376 atlprov.dll
11/08/2007 08:19 AM 77,312 bscmake.exe
11/08/2007 08:19 AM 670,192 c1.dll
11/08/2007 08:19 AM 2,334,200 c1xx.dll
11/08/2007 08:19 AM 33,784 cvtres.exe
11/08/2007 08:19 AM 17,920 dumpbin.exe
11/08/2007 08:19 AM 17,920 editbin.exe
11/08/2007 08:19 AM 17,912 lib.exe
11/08/2007 08:19 AM 790,008 link.exe
06/05/2006 06:02 PM 268 link.exe.config
11/08/2007 08:19 AM 358,384 ml.exe
11/08/2007 08:19 AM 94,200 nmake.exe
11/08/2007 08:19 AM 20,480 undname.exe
03/07/2007 03:44 PM 31 vcvars32.bat
04/05/2009 09:48 AM <DIR> x86_amd64
11/08/2007 08:19 AM 40,448 xdcmake.exe
06/05/2006 06:02 PM 268 xdcmake.exe.config
16 File(s) 4,638,703 bytes
5 Dir(s) 12,399,824,896 bytes free
So, no C++ compiler with C++ installation. Perfect.

On the suggestion of a coworker I also installed the C# tools. Low and behold the C# tools included the C++ compiler, and my problems went away:
C:\Program Files\Microsoft Visual Studio 9.0\VC\bin>dir
Volume in drive C has no label.
Volume Serial Number is 104F-0033
Directory of C:\Program Files\Microsoft Visual Studio 9.0\VC\bin
04/05/2009 10:43 AM <DIR> .
04/05/2009 10:43 AM <DIR> ..
04/05/2009 09:46 AM <DIR> 1033
04/05/2009 09:48 AM <DIR> amd64
11/08/2007 08:19 AM 165,376 atlprov.dll
11/08/2007 08:19 AM 77,312 bscmake.exe
11/08/2007 08:19 AM 670,192 c1.dll
11/08/2007 08:19 AM 2,334,200 c1xx.dll
11/08/2007 08:19 AM 2,356,720 c2.dll
11/08/2007 08:19 AM 125,936 cl.exe
06/05/2006 06:02 PM 268 cl.exe.config
11/08/2007 08:19 AM 33,784 cvtres.exe
11/08/2007 08:19 AM 17,920 dumpbin.exe
11/08/2007 08:19 AM 17,920 editbin.exe
11/08/2007 08:19 AM 17,912 lib.exe
11/08/2007 08:19 AM 790,008 link.exe
06/05/2006 06:02 PM 268 link.exe.config
11/08/2007 08:19 AM 358,384 ml.exe
11/08/2007 08:19 AM 94,200 nmake.exe
11/08/2007 08:19 AM 20,480 undname.exe
03/07/2007 03:44 PM 31 vcvars32.bat
04/05/2009 09:48 AM <DIR> x86_amd64
11/08/2007 08:19 AM 40,448 xdcmake.exe
06/05/2006 06:02 PM 268 xdcmake.exe.config
19 File(s) 7,121,627 bytes
5 Dir(s) 12,437,422,080 bytes free
I find it fairly shocking that this configuration was never tested before the bits left Microsoft.








