项目平台工具集版本由.vcxproj文件中标签决定,如v143对应vs2022、v142对应vs2019;需通过修改属性或手动编辑文件统一匹配已安装工具集,或通过visual studio installer安装缺失工具集并确保架构与sdk对齐。

确认当前项目要求的平台工具集版本
错误信息里明确写了 v143、v142 这类字符串,它就是项目硬性依赖的平台工具集。不要凭感觉猜——直接打开项目根目录下的 .vcxproj 文件,用记事本或 VS Code 搜索 <platformtoolset></platformtoolset>,你会看到类似这样的行:
<platformtoolset>v143</platformtoolset>
这个值决定了你必须匹配的 Visual Studio 版本。常见对应关系是:v143 → VS2022,v142 → VS2019,v141 → VS2017。
如果你装的是 VS2019,但项目写的是 v143,那必然报错;反之亦然。别跳过这步,很多后续操作失败,就是因为没看清这个值到底是多少。
在 VS 界面里改平台工具集(适合单项目、无子模块)
右键项目 → “属性” → “配置属性” → “常规” → 找到“平台工具集”下拉框。这里列出的是你当前 VS 已安装的所有可用工具集。
- 如果下拉列表里有你要的版本(比如项目要
v142,而你装了 VS2019),直接选中并点“应用” - 如果列表里没有目标版本(比如项目要
v143,但你只装了 VS2019),说明你根本没装对应工具集,界面改不了——得换思路 - 改完后务必点击“确定”或“应用”,再右键项目选“重新生成”,不能只点“生成”
注意:这个操作只改当前选中的配置(如 Debug|Win32)。如果项目还配了 x64 或 Release,得手动切过去再改一遍,否则切换配置后还会报错。
Visual Studio 18.8.1 官方固定版本安装引导程序,当前条目使用微软发布历史中的 Professional Web Installer,适合旧项目兼容、环境回退、复现特定构建链和排查版本差异等场景。
手动编辑 .vcxproj 文件批量替换(多项目/子项目必做)
VS 界面改不彻底,尤其当解决方案含多个 .vcxproj(比如主程序 + 静态库 + DLL),每个都得单独进属性改,容易漏。更可靠的方式是关掉 VS,用文本编辑器批量处理。
- 找到所有
.vcxproj文件(包括子目录里的),逐个用记事本打开 - 搜索
<platformtoolset>v143</platformtoolset>,替换成你环境支持的版本,比如<platformtoolset>v142</platformtoolset> - 注意别只搜
v143字符串——有些地方可能是v143_xp或注释里的残留,只换标签内的值 - 保存后重新打开解决方案,VS 会提示“项目已更改,是否重新加载?”,选“全部重新加载”
遗漏一个子项目的 .vcxproj,编译时照样卡在 MSB8020。这点最容易被忽略,尤其 Qt 或 CMake 导出的项目常带多个工程文件。
安装缺失的平台工具集(长期维护项目推荐)
如果项目明确依赖新特性(比如 C++20 概念、std::span 的完整实现),降级工具集可能引发新编译错误。这时该补工具集,而不是硬降级。
- 打开 Visual Studio Installer(不是 VS 主程序)
- 选中你正在用的 VS 版本 → “修改” → 在“工作负载”里确保勾选“使用 C++ 的桌面开发”
- 切到“单独组件”页,搜索
v143,勾选MSVC v143 - VS 2022 C++ x64/x86 生成工具及对应 Windows SDK - 安装完成后重启 VS,再检查项目属性里的下拉列表是否出现了
v143
工具集不是装上就自动生效的——它必须和项目配置、Windows SDK、甚至目标平台(x86/x64/ARM64)三者对齐。比如你装了 v143,但项目配置的是 ARM64,还得额外装 MSVC v143 ARM64 生成工具,否则照样报 MSB8020。










