visual studio 2022 cuda 编程报错:找不到 Windows SDK 版本 10.0.22000.0
visual studio 2022 cuda 编程报错:找不到 Windows SDK 版本 10.0.22000.0
问题描述
- 已通过 visual studio installer 安装了 windows sdk 10.0.22000.0,安装路径为
E:\Windows Kits\10\ - 运行 cuda 示例代码时依旧报错:
错误 MSB8036 找不到 Windows SDK 版本 10.0.22000.0。请安装所需版本的 Windows SDK,或者在项目属性页中或通过右键单击解决方案并选择“重定解决方案目标”来更改 SDK 版本。
原因分析:
-
在 visual studio 窗口中单击
工具=>选项=>项目和解决方案=> 生成并运行将项目生成输出和日志文件的详细程度修改为诊断,以查看详细的生成信息定位问题。

-
生成运行项目,报错:
error MSB8036: 找不到 Windows SDK 版本 10.0.22000.0。请安装所需版本的 Windows SDK,或者在项目属性页中或通过右键单击解决方案并选择“重定解决方案目标”来更改 SDK 版本。 -
查看底部项目生成的
输出内容

ctrl+f搜索WindowsSdkDir, 相关内容如下:
1>在 E:\Windows Kits\10\DesignTime\CommonConfiguration\Neutral\UAP\10.0.22000.0\UAP.props (5,6) 处重新分配属性: $(WindowsSdkDir)=“\”(先前值:“E:\Windows Kits\10\”)
可以看到 WindowsSdkDir 在文件 UAP.props 中的第 5行被设置为了错误的路径,相应的代码行为:
<!-- Force WindowsSdkDir to always be a parent to this props file -->
<WindowsSdkDir>$([MSBUILD]::GetDirectoryNameOfFileAbove('$(MSBUILDTHISFILEDIRECTORY)', 'sdkmanifest.xml'))\</WindowsSdkDir>
这段代码是用于在 MSBuild 脚本中动态设置 WindowsSdkDir 变量的值。它通过调用 MSBuild 的静态方法 GetDirectoryNameOfFileAbove,从当前 MSBuild 文件所在的目录 ($(MSBUILDTHISFILEDIRECTORY)) 向上查找包含 sdkmanifest.xml 文件的目录,并将这个目录的路径赋值给 WindowsSdkDir。
但是不知道什么原因,导致其运行的结果是 \ , 从而导致 WindowsSdkDir 的路径错误,产生报错,找不到 Windows SDK。
解决方案:
修改 UAP.props 文件,手动设置 WindowsSdkDir 的路径(修改为本地相应的 sdk 安装路径):
<!-- Force WindowsSdkDir to always be a parent to this props file -->
<!-- <WindowsSdkDir>$([MSBUILD]::GetDirectoryNameOfFileAbove('$(MSBUILDTHISFILEDIRECTORY)', 'sdkmanifest.xml'))\</WindowsSdkDir> -->
<WindowsSdkDir>E:\Windows Kits\10\</WindowsSdkDir>
最后编译运行,成功解决!
欢迎来到FlagOS开发社区,这里是一个汇聚了AI开发者、数据科学家、机器学习爱好者以及业界专家的活力平台。我们致力于成为业内领先的Triton技术交流与应用分享的殿堂,为推动人工智能技术的普及与深化应用贡献力量。
更多推荐



所有评论(0)