找不到Windows SDK版本

问题描述 投票:0回答:1

在我的 Windows 7 计算机上,我同时拥有 Windows SDK(10.0.14393.795) 和 WDK(10.0.14393.0) 版本,但是,当我在 Visual Studio 2015 中构建项目时,它一直显示

MSB8036 找不到 Windows SDK 版本 10.0.14393.0。安装所需版本的 Windows SDK 或在项目属性页中更改 SDK 版本,或者右键单击解决方案并选择“重新定位解决方案”。

当我重新定位解决方案时,我拥有的选项是 10.0.10240 和 8.1,但不是 10.0.14393。

我怎样才能建立这种正确性?

visual-studio driver kmdf
1个回答
0
投票

运行下面列出的小批处理文件。它调用另一个批处理文件

winsdk.bat
,该文件由 Microsoft 编写,是 Visual Studio 安装的一部分,是 Visual Studio 用于检测和选择已安装 SDK 的“官方方式”。

每个版本的 Visual Studio 使用不同的

winsdk.bat
,但 VS2015 之后它们彼此非常相似。

如果您研究这个 Microsoft 批处理文件的工作方式,您会发现为什么它没有检测到您的 SDK。 TL;DR:它混合使用注册表和文件系统解析。

@echo off
REM If you don't have it installed already, you can download VSWHERE.EXE from https://github.com/microsoft/vswhere

for /f "usebackq tokens=*" %%i in (`"%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -latest -legacy -property resolvedInstallationPath`) do (
  set VSinstallDir=%%i
)
echo The latest Visual Studio is installed in: %VSinstallDir%

set VSCMD_ARG_HOST_ARCH=x64
set VSCMD_ARG_TGT_ARCH=x64

REM This call actually does the job of detecting the SDKs that you have installed on your system and picks the default one.
call %VSinstallDir%\Common7\Tools\vsdevcmd\core\winsdk.bat

echo WindowsSDKVersion=%WindowsSDKVersion%
echo WindowsSDKLibVersion=%WindowsSDKLibVersion%
echo UCRTVersion=%UCRTVersion%
echo WindowsSdkDir=%WindowsSdkDir%
echo UniversalCRTSdkDir=%UniversalCRTSdkDir%
echo WindowsSdkBinPath=%WindowsSdkBinPath%
echo WindowsSdkVerBinPath=%WindowsSdkVerBinPath%
echo WindowsLibPath=%WindowsLibPath%

如果您愿意,您可以将

VSCMD_ARG_HOST_ARCH
VSCMD_ARG_TGT_ARCH
变量设置为
=x86
=arm
=arm64

您可以使用

winsdk.bat
工具逐步调试您的
CMDebug
文件,网址为:https://jpsoft.com/all-downloads/all-downloads.html(注意:v25 适用于所有版本的窗户)。如果这样做,请记住使用
set VSCMD_ARG_HOST_ARCH=x64
实用程序内的菜单
set VSCMD_ARG_TGT_ARCH=x64
执行
Debug --> Evaluate Command... 
CMDebug
命令。

© www.soinside.com 2019 - 2024. All rights reserved.