如何用Visual Studio 2019针对Windows 8(非8.1)开发程序?
在Visual Studio 2019中配置Windows 8 SDK以兼容Win8设备的解决方案
一、确认Windows 8 SDK的安装完整性
- 检查默认安装路径
C:\Program Files (x86)\Windows Kits\8.0,确保存在Include、Lib、SDKManifest.xml等核心文件 - 如果安装路径非默认,建议重新安装到默认目录以避免路径识别问题;若需保留自定义路径,需后续手动配置所有相关目录
二、通过编辑项目文件指定SDK版本(替代UI选择)
VS2019的项目属性UI可能默认不显示旧版SDK,直接修改.vcxproj文件更可靠:
- 右键项目 → 选择“卸载项目”
- 右键已卸载的项目 → 选择“编辑[项目名].vcxproj”
- 找到所有
<WindowsTargetPlatformVersion>节点,将值修改为8.0<WindowsTargetPlatformVersion>8.0</WindowsTargetPlatformVersion> - 保存文件,重新加载项目
三、修正VC++目录配置
若手动指定SDK后仍出现头文件找不到的错误(E1696),需手动配置包含目录和库目录:
- 打开项目属性 → 进入“VC++目录”
- 包含目录添加以下路径(根据SDK安装路径调整):
$(WindowsSdkDir_80)\Include\um$(WindowsSdkDir_80)\Include\shared$(WindowsSdkDir_80)\Include\winrt(若项目用到WinRT相关代码)
若系统变量未识别,直接填绝对路径,例如:C:\Program Files (x86)\Windows Kits\8.0\Include\um
- 库目录添加对应平台的路径(以x86为例):
$(WindowsSdkDir_80)\Lib\win8\um\x86
四、解决MSB8036错误(SDK未被VS识别)
该错误是因为VS无法读取Windows 8 SDK的注册信息,可通过注册表修复:
- 打开注册表编辑器(
regedit) - 定位到
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Kits\Installed Roots - 检查是否存在
KitsRoot80字符串值:- 若不存在,右键新建字符串值,命名为
KitsRoot80,值设为Win8 SDK的安装路径(如C:\Program Files (x86)\Windows Kits\8.0\) - 若已存在,确认路径与实际安装目录一致
- 若不存在,右键新建字符串值,命名为
五、清理并重新生成项目
- 删除项目目录下的
Debug、Release等编译输出目录 - 打开VS的“生成”菜单 → 选择“清理解决方案”
- 重新生成项目,避免旧配置残留导致的编译错误
额外注意事项
- 确保项目使用的平台工具集(如
v142,VS2019默认工具集)与Windows 8 SDK兼容,v142及以下工具集均支持Win8 SDK - 检查代码中是否使用了Windows 8.1或更高版本才引入的API,替换为Win8兼容的接口,避免运行时错误
内容的提问来源于stack exchange,提问作者cdonts




