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

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


One Response to Visual Studio: Fixing Broken $(WindowsSdkDir) Variable

  1. Pavel April 6, 2011 at 06:56 #

    Starting from SDK 7.1 there is tool:
    “C:\Program Files\Microsoft SDKs\Windows\v7.1\Setup\WindowsSdkVer.exe”

    that can be used for changing current version of SDK.

Leave a Reply