Win SDK for Server 2008 plus VS2008 causes double X64 platforms in VC Directories

Issue: Installing the Windows SDK for Windows Server 2008 after Visual Studio 2008 Standard on a computer with an X64 operating system corrupts VC directories, causing a double X64 entry.  This post applies to the Windows SDK for Server 2008 only.  This issue has been fixed in subsequent SDKs.

Scenario:

You probably have this issue if your computer setup matches the setup described below:

1. Visual Studio 2008 Standard is installed on an X64 OS.  To determine what version of Visual Studio you are using, launch Visual Studio, choose Help, About Visual Studio.

2. The Windows SDK for Server 2008 and .NET Framework 3.5 is installed (this is v6.1).

3. The VC++ Directories Platform Entries are corrupted.  To determine if your directories are corrupted, launch the VS IDE and go to tool->options->projects and solutions->VC++ Directories.  If the entries in the drop down “Platform” box appear as "x86", "x64" and "x64", your directories are corrupted.  If the platform entries appear as "x86", "x64" and "Itanium", you do not have this issue. 

4. It is not possible to create an X64 target.  Neither of the X64 directory entries work.

Cause:

The installation order of the compiler components that ship with the Windows SDK for Server 2008 creates the problem. Because Visual Studio Standard does not have ia64 support it does not install the file VCProjectIA64Platform.dll.  The Windows SDK does support IA64 development and does install this file.  However  Visual Studio VC++ is a 32-bit application and requires an X86 version of the file. The Windows SDK installs a 64-bit version of the VC compiler/CRT package on 64-bit operating systems.  This package includes the 64-bit version of VCProjectIA64Platform.dll, which causes the double directory entry. This issue has been fixed in later releases of the Windows SDK.

Workaround:

Pick one of the following workarounds:

1. If you do not need to build targeting IA64, you can simply delete IA64.VcPlatform.config from %ProgramFiles(x86)%\Microsoft Visual Studio 9.0\VC\vcpackages.

2. If you have the Windows Server 2008 SDK installed on an X86 computer, you can copy the x86 version of VCProjectIA64Platformd.dll and drop it to %ProgramFiles(x86)%\Microsoft Visual Studio 9.0\VC\vcpackages.

3. If the above workarounds don’t work for your situation, download the Windows SDK for Server 2008 ISO package.  Find the file named "\Setup\vc_stdx86.cab\FL_VCProjectIA64Platform_dll_76114_76114_x86_ln.3643236F_FC70_11D3_A536_0090278A1BB8".  Rename the file “VCprojectIA64Platform.dll”.  Copy it to %ProgramFiles(x86)%\Microsoft Visual Studio 9.0\VC\vcpackages.

Note: Running “Repair” on the Windows SDK will revert these fixes.