I had the same issue and I tried everything except reinstall Windows:
- Repair VS2017
- Install additional SDK
- Reinstall SDK
- Uninstall VS2017, install SDK, then install VS2017
- Uninstall and reinstall VS2017 (in one step)
As mentioned by original poster:
- WindowsSdkDir environment variable does not exist
- MakePri.exe exists in the right path
- Registry entries for Win10 SDK exist in WOW6432 node and point to correct folder.
After a lot of hair pulling I fired up ProcMon (SysInternals) and run a build from VS. I noticed that MSBuild was looking for SDKManifest.xml in every SDK root folder, but that file did not exist in the Win10 SDK root folder.
I copied SDKManifest.xml from another PC with the same Win10 SDK version installed that did not have the issue and it worked.
It is beyond me why after uninstalling everything and installing from scratch, SDKManifest.xml was still missing.
PS: I have many SDKs installed (7.0 through 10.0) most of which were installed with the corresponding VS version. I run VS2008 (Pro), VS2013 (Ent), VS2015 (Ent) and VS2017 (Community) side by side for different projects (some projects, especially SSIS, cannot be migrated to VS2017 without an upgrade to the database engine version). I also have WDK installed for a printer driver development, so all this may be confusing the SDK/VS installer.
Edit: I would be reluctant to alter VS *.target files or add any environment variables and point them to a hard coded path. This will almost certainly break any future SDK installation and does not allow side by side usage of multiple SDK versions