包含环境变量的内容是个好主意。根据那里显示的路径,您似乎已经安装了 Windows 驱动程序工具包并且遇到了此问题Connect 上报告的问题.
根据问题描述,wdf
WDK 创建的目录会混淆尝试确定可用的最新 SDK 版本的批处理文件。例如,代替
C:\Program Files (x86)\Windows Kits\10\include\wdf\ucrt
in the INCLUDE
变量,你应该有类似的东西
C:\Program Files (x86)\Windows Kits\10\include\10.0.10150.0\ucrt
“地毯式轰炸”解决方案:卸载WDK,确保wdf
目录消失了,一切应该恢复正常。
如果这不是一个选择,这里有一个“外科手术”解决方案:您需要编辑
"C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools\vcvarsqueryregistry.bat"
(当然要先备份)
1.查找以下两个标签:
:GetWindowsSdkDirHelper32
:GetWindowsSdkDirHelper64
在每一个下面,您都会找到以下行:
@REM Get windows 10 sdk version number
@if not "%WindowsSdkDir%"=="" @FOR /F "delims=" %%i IN ('dir "%WindowsSdkDir%include\" /b /ad-h /on') DO @set WindowsSDKVersion=%%i\
将其更改为:
@REM Get windows 10 sdk version number
@if not "%WindowsSdkDir%"=="" @FOR /F "delims=" %%i IN ('dir "%WindowsSdkDir%include\" /b /ad-h /on') DO (
@if not "%%i"=="wdf" (
@set WindowsSDKVersion=%%i\
)
)
2.查找以下两个标签:
:GetUniversalCRTSdkDirHelper32
:GetUniversalCRTSdkDirHelper64
在每个选项下,更改以下行:
@FOR /F "delims=" %%i IN ('dir "%UniversalCRTSdkDir%include\" /b /ad-h /on') DO @SET UCRTVersion=%%i
to:
@FOR /F "delims=" %%i IN ('dir "%UniversalCRTSdkDir%include\" /b /ad-h /on') DO (
@if not "%%i"=="wdf" (
@SET UCRTVersion=%%i
)
)
就是这样。让我知道是否有帮助。
请记住,这将跳过wdf
总共目录。如果 WDK 命令提示符安装脚本碰巧使用相同的vcvarsqueryregistry.bat
批处理文件(我对此表示怀疑,但是......),那么它们将不再正常工作;在这种情况下,需要更多的技巧来为每个构建环境选择正确的批处理文件。