当前位置: 首页 > news >正文

记一次vs中无法找到win sdk的问题

记一次vs中无法找到win sdk的问题

Posted on 2026-02-28 17:48  云起  阅读(0)  评论(0)    收藏  举报

记一次vs中无法找到win sdk的问题

情况说明

使用cmake构建项目时,报错

CMake Error at CMakeLists.txt:4 (project):Failed to run MSBuild command:D:/IDE/Microsoft Visual Studio/18/Community/MSBuild/Current/Bin/amd64/MSBuild.exeto get the value of VCTargetsPath:适用于 .NET Framework MSBuild 版本 18.3.0-release-26070-10+3972042b7生成启动时间为 2026/2/28 15:45:10。节点 1 上的项目“.\CMakeFiles\4.2.1\VCTargetsPath.vcxproj”(默认目标)。D:\IDE\Microsoft Visual Studio\18\Community\MSBuild\Microsoft\VC\v180\Microsoft.Cpp.WindowsSDK.targets(46,5): error MSB8036: 找不到 Windows SDK 版本 10.0.22621.0。请安装所需版本的 Windows SDK,或者在项目属性页中或通过右键单击解决方案并选择“重定解决方案目标”来更改 SDK 版本。 [D:\Downloads\nuwasdk_demo_debug_release_noqt\debug_release\sdkdemo\CMakeFiles\4.2.1\VCTargetsPath.vcxproj]已完成生成项目“D:\Downloads\nuwasdk_demo_debug_release_noqt\debug_release\sdkdemo\CMakeFiles\4.2.1\VCTargetsPath.vcxproj”(默认目标)的操作 - 失败。生成失败。

我是用的是vs2026,win11系统。项目是win10开发的。
根据报错看,应该是找不到win sdk了。
查看了组件安装,明明是安装了。
image-20260228154950123

卸载了组件,又重新安装也没有解决。查看对应的目录,是存在的。检查了注册表,也是指向这个路径的。
image-20260228155158223
image-20260228155600278

win11 sdk安装看来是没问题的。

经过一番冲浪,参照VS2019解决MSB8036 找不到 Windows SDK 版本 10.0.19041.0_找不到 windows sdk 版本 10.0.19041.0。请安装所需版本的 windows s-CSDN博客

查看UAP.props内容,缺失对sdkdir属性的设置没有条件。

<WindowsSdkDir>$([MSBUILD]::GetDirectoryNameOfFileAbove('$(MSBUILDTHISFILEDIRECTORY)', 'sdkmanifest.xml'))\</WindowsSdkDir>

修改后能够正常生成了

<WindowsSdkDir Condition="'$(WindowsSdkDir)' == ''">$([MSBUILD]::GetDirectoryNameOfFileAbove('$(MSBUILDTHISFILEDIRECTORY)', 'sdkmanifest.xml'))\</WindowsSdkDir>

就结果而言,应该是uap中错误的覆盖了原有的属性值。

还有其他的修改方式,在uap中,直接指定sdkdir为win sdk的绝对路径或者设定一个系统变量值,也是可以的。