VS2019 Windows容器使用WDK、SDK编译改PlatformToolset报MSB8020求助
报错MSB8020问题解决步骤
1. 校验WDK与Visual Studio的集成完整性
- 安装Windows 10 1903 WDK时必须同步安装对应VS 2019的扩展插件,默认WDK安装程序末尾会弹出扩展安装提示,容器静默安装场景下通常会跳过该步骤,你需要手动进入WDK安装路径下的
\Vsix\VS2019\目录,执行对应vsix文件的静默安装。 - 确认WDK默认安装路径
C:\Program Files (x86)\Windows Kits\10下存在\build\10.0.18362.0\WindowsDriver.Common.targets这类驱动构建目标文件,18362为Windows 10 1903对应的版本号。 - 容器内安装所有开发组件时必须使用管理员权限运行安装程序,否则VS扩展和WDK的注册表项会写入失败,直接导致MSBuild无法识别工具集。
2. 修正SDK与WDK的版本匹配问题
你当前使用的Windows 10 SDK版本为19041(对应2004版),但WDK版本为1903(对应18362版),两者大版本不一致会导致平台工具集无法被识别,可二选一处理:
- 把SDK降级到1903版本(10.0.18362.x)
- 把WDK升级到对应19041的版本
3. 调整编译命令的环境初始化参数
默认的VsDevCmd.bat不会自动加载驱动构建相关的环境变量,你需要给启动命令增加架构参数,同时显式指定目标平台版本,避免MSBuild自动匹配到高版本SDK:
"C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\Tools\VsDevCmd.bat" -arch=amd64 -host_arch=amd64 && msbuild myproject.sln /m /p:Platform=x64 /p:Configuration="Release" /p:WindowsTargetPlatformVersion=10.0.18362.0
4. 可选排查方案
如果调整后仍报错,可运行msbuild /pp:out.xml myproject.vcxproj导出完整构建预处理文件,搜索WindowsApplicationForDrivers10.0相关的导入路径,确认是否存在路径缺失导致的加载失败。
内容的提问来源于stack exchange,提问作者Jose
相关产品推荐
相关产品推荐

