You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Directory.build.targets设置v143工具集报MSB8020错误的原因排查

解决VS2022通过Directory.build.targets统一设置PlatformToolset失败的问题

核心问题:导入时机错误

Directory.build.targets是在项目构建的后期阶段才被导入的,而<PlatformToolset>的配置需要在项目属性初始化的早期阶段生效。当你把工具集配置放在Directory.build.targets里时,系统已经完成了工具集的选择逻辑,你的v143设置根本没被读取,自然会报错找不到对应工具集。而手动修改项目文件时,配置是在正确的阶段被读取的,所以能正常构建。

正确配置方法

把工具集配置放到Directory.build.props文件中(注意是.props不是.targets),这个文件会在项目属性初始化的早期被导入,能覆盖默认的工具集设置:

  1. 在解决方案根目录创建Directory.build.props文件
  2. 写入如下内容:
<Project>
  <PropertyGroup>
    <PlatformToolset>v143</PlatformToolset>
  </PropertyGroup>
</Project>

额外排查事项

如果上述方法仍未解决问题,可以检查以下几点:

  • 清理项目中的硬编码配置:部分项目可能在自身的.vcxproj文件中硬写了<PlatformToolset>,这会覆盖根目录Directory.build.props的设置,需要删除这些局部配置。
  • 排除IDE缓存问题:打开VS2022的Developer Command Prompt,切换到解决方案目录,运行msbuild /t:Rebuild命令,看是否能正常构建,避免IDE缓存导致的异常。
  • 确认工具集安装完整:打开Visual Studio安装器,检查“Desktop development with C++”工作负载下的MSVC v143 - VS 2022 C++ x64/x86 build tools是否已勾选并安装完成,部分情况下可能漏装了对应平台的工具集组件。

内容的提问来源于stack exchange,提问作者Kaustubh Dwivedi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 20:04:55