安装最新Visual Studio仅获MSBuild15 无法获取16/17版本问题咨询
问题背景
执行npm install命令时首次报错:
npm install error MSB4019: The imported project "C:\Microsoft.Cpp.Default.props" was not found. Confirm that the path in the <Import> declaration is correct
按照相关方案操作后该报错消失,又出现新报错:
C:\Program Files\Microsoft Visual Studio\2022\Community\Msbuild\Microsoft\VC\v170\Microsoft.Cpp.props(41,5): error MSB4186: Invalid static method invocation syntax: "[Microsoft.Build.Utilities.ToolLocationHelper]::FindRootFolderWhereAllFilesExist($(_VCTargetsPathFolders), $(_RelativeToolsetFiles))". Method 'Microsoft.Build.Utilities.ToolLocationHelper.FindRootFolderWhereAllFilesExist' not found. Static method invocation should be of the form: $([FullTypeName]::Method()), e.g. $([System.IO.Path]::Combine(`a`, `b`)). [C:\Users\hdaher\workspace\ahp-administration-portal-dashboard\node_modules\deasync\build\deasync.vcxproj]
根据官方文档说明,FindRootFolderWhereAllFilesExist方法仅存在于MSBuild 16、17版本中,MSBuild 15版本不包含该方法。
具体问题
每次尝试安装最新版Microsoft Visual Studio时,最终仅安装了MSBuild 15版本。需要正确安装Visual Studio 2022 17.2正式版,并配套安装MSBuild 16或17版本,按照已有相关指引操作后MSBuild版本仍停留在15,问题未解决。
解决步骤
按以下顺序操作即可修复版本不匹配问题:
- 彻底清理旧版本MSBuild及Visual Studio残留
- 打开系统「应用和功能」,卸载所有版本的Microsoft Visual Studio、Microsoft Build Tools、2015及之后版本的Microsoft Visual C++ Redistributable(后续可按需重装对应运行库)
- 删除以下路径下残留的MSBuild相关文件夹:
C:\Program Files (x86)\MSBuildC:\Program Files\Microsoft Visual StudioC:\Program Files (x86)\Microsoft Visual Studio
- 按下Win+R输入
regedit打开注册表编辑器,删除HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild、HKEY_CURRENT_USER\SOFTWARE\Microsoft\MSBuild两个注册表项,操作前建议提前备份注册表避免异常
- 正确安装Visual Studio 2022 17.2正式版
- 运行Visual Studio Installer,选择Visual Studio 2022对应版本(Community/Professional/Enterprise均可),在安装配置界面必须勾选「使用C++的桌面开发」工作负载
- 在右侧安装详情列表中,确认勾选「MSBuild」「C++生成工具核心功能」「对应版本Windows SDK」组件,组件版本选择17.2正式版匹配的版本,不要勾选仅兼容旧版本的可选组件
- 安装路径不要设置为含中文、特殊字符的路径,等待安装全程完成后再进行后续操作
- 修正系统环境变量配置
- 右键「此电脑」选择「属性」-「高级系统设置」-「环境变量」,在系统变量的
Path条目里,将MSBuild 17的路径C:\Program Files\Microsoft Visual Studio\2022\对应安装版本\MSBuild\Current\Bin移动到所有路径条目的最顶部 - 删除
Path中所有指向MSBuild 15版本的条目(路径一般包含15.0版本标识) - 新建系统变量
VCTargetsPath,变量值设置为C:\Program Files\Microsoft Visual Studio\2022\对应安装版本\MSBuild\Microsoft\VC\v170\
- 右键「此电脑」选择「属性」-「高级系统设置」-「环境变量」,在系统变量的
- 配置npm的默认编译工具版本
- 打开管理员权限的命令提示符或PowerShell,依次执行以下命令:
npm config set msvs_version 2022 npm config set msbuild_path "C:\Program Files\Microsoft Visual Studio\2022\对应安装版本\MSBuild\Current\Bin\MSBuild.exe" npm install -g node-gyp@latest
- 打开管理员权限的命令提示符或PowerShell,依次执行以下命令:
- 验证修复结果
- 新开一个命令行窗口,执行
MSBuild -version,确认返回的版本号为17.x开头 - 进入项目目录,删除原有
node_modules文件夹和package-lock.json文件,重新执行npm install即可正常完成依赖安装。
- 新开一个命令行窗口,执行
内容的提问来源于stack exchange,提问作者Hani Gotc Reinstate Monica
相关产品推荐
相关产品推荐

