如何将项目从Windows SDK 8.1升级至Windows SDK 10?
在Visual Studio 2022中使用v141/v142工具集切换到Windows SDK 10的正确方法
针对你遇到的SDK版本切换不生效、头文件找不到的问题,以下是不依赖旧版VS的解决方案:
1. 确保安装必要组件
在VS2022安装程序的「单个组件」标签中,勾选以下内容:
- 对应版本的MSVC工具集:
MSVC v141 - VS 2017 C++ x64/x86生成工具(对应v141)或MSVC v142 - VS 2019 C++ x64/x86生成工具(对应v142) - 兼容该工具集的Windows 10 SDK版本:推荐选
Windows 10 SDK (10.0.17763.0)(v141最低支持10.0.15063.0,v142最低支持10.0.17763.0)
2. 修正项目属性配置
打开项目属性窗口,按以下步骤设置:
- 常规:确认「平台工具集」设为
v141/v141_xp或v142/v142_xp,「Windows SDK版本」选择已安装的10.x版本 - C/C++ → 预处理器:添加或修改预处理器定义(0x0601对应Windows 7,确保程序兼容Win7及以上;若无需兼容Win7可设为0x0A00):
WINVER=0x0601 _WIN32_WINNT=0x0601 - VC++目录:检查「包含目录」「库目录」是否使用VS内置变量(如
$(WindowsSdkDir)include\$(WindowsSDKVersion)\um),而非硬编码指向SDK 8.1的路径
3. 修复项目文件的硬编码设置
若UI设置仍不生效,直接编辑项目的.vcxproj文件:
- 查找
<WindowsTargetPlatformVersion>标签,将值改为目标SDK版本(如<WindowsTargetPlatformVersion>10.0.17763.0</WindowsTargetPlatformVersion>) - 确认
<PlatformToolset>标签值为v141或v142 - 删除任何硬编码指向SDK 8.1的
<IncludePath>或<LibraryPath>配置
4. 解决AutoCAD SDK的宏冲突
若旧版AutoCAD SDK强制设置了WINVER,需:
- 在项目预处理器定义中,将
WINVER=0x0601和_WIN32_WINNT=0x0601移到最前端,确保编译时优先覆盖AutoCAD头文件的设置 - 确认AutoCAD SDK的库文件与v141/v142工具集、Windows SDK 10兼容,必要时使用对应版本的SDK补丁
内容的提问来源于stack exchange,提问作者Michal Hadraba
相关产品推荐
相关产品推荐

