










使用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.exe
to 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了。
查看了组件安装,明明是安装了。

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


win11 sdk安装看来是没问题的。
查看UAP.props内容,缺失对sdkdir属性的设置没有条件。
<WindowsSdkDir>$([MSBUILD]::GetDirectoryNameOfFileAbove('$(MSBUILDTHISFILEDIRECTORY)', 'sdkmanifest.xml'))\</WindowsSdkDir>
修改后能够正常生成了
<WindowsSdkDir Condition="'$(WindowsSdkDir)' == ''">$([MSBUILD]::GetDirectoryNameOfFileAbove('$(MSBUILDTHISFILEDIRECTORY)', 'sdkmanifest.xml'))\</WindowsSdkDir>
就结果而言,应该是uap中错误的覆盖了原有的属性值。
还有其他的修改方式,在uap中,直接指定sdkdir为win sdk的绝对路径或者设定一个系统变量值,也是可以的。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。