by on January 19, 2010, in

Visual Studio: Fixing Broken $(WindowsSdkDir) Variable

If you get weird errors in Visual Studio that basically state files like Windows.h cannot be found, the reason may be a missing or incorrect WindowsSdkDir variable.

In my case, working with Visual Studio 2008 SP1 (32 bit) on Windows 7 x64 (64 bit) everything was fine until I installed the Windows 7 SDK. After that, no SDK files could be found any more and nothing would compile. Uninstalling the SDK (which I did not really need anyway – I had installed it only to get at XPerf) did not help. After some reasearch I found out that the Visual Studio internal variable WindowsSdkDir (which is not an environment variable) was missing from the registry. After adding the following, everything worked like a charm again:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows\CurrentInstallFolder=C:\Program Files\Microsoft SDKs\Windows\v6.0A
[REG_SZ]

Depending on your configuration you might have to set the variable in the user profile instead:

HKEY_CURRENT_USER\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows\CurrentInstallFolder=C:\Program Files\Microsoft SDKs\Windows\v6.0A
[REG_SZ]

Previous Article Syntax Highlighting PowerShell Code in HTML - With a PowerShell Script
Next Article Are Mandatory User Profiles Deleted at Logoff - or Cached?