Chocolatey安装失败:CMD/PowerShell下安装及组件升级遇错误
安装Node.js时勾选了同时安装Chocolatey,但首次安装失败。之后以管理员身份运行CMD,执行命令choco upgrade -y visualstudio2019-workload-vctools,出现以下错误:
ERROR: Unable to detect any supported Visual Studio product. You may try passing --installPath or both --productId and --channelId parameters.
The upgrade of visualstudio2019-workload-vctools was NOT successful.
Error while running 'C:\ProgramData\chocolatey\lib\visualstudio2019-workload-vctools\tools\ChocolateyInstall.ps1'.
See log for details.
Chocolatey upgraded 0/1 packages. 1 packages failed.
See the log for details (C:\ProgramData\chocolatey\logs\chocolatey.log).
Failures
- visualstudio2019-workload-vctools (exited -1) - Error while running 'C:\ProgramData\chocolatey\lib\visualstudio2019-workload-vctools\tools\ChocolateyInstall.ps1'.
See log for details.
已尝试以下操作但均未解决:
- 自动安装Chocolatey
- 以管理员身份运行CMD执行
choco upgrade -y visualstudio2019-workload-vctools - 卸载Node.js后重新尝试自动安装Chocolatey
需求:成功安装Chocolatey。
1. 彻底清理残留的Chocolatey文件
- 关闭所有打开的CMD/PowerShell窗口
- 删除以下目录:
C:\ProgramData\chocolateyC:\Users\<你的用户名>\.chocolatey
- 打开系统环境变量设置(右键此电脑→属性→高级系统设置→环境变量),移除所有包含
chocolatey的路径条目
2. 手动纯净安装Chocolatey
以管理员身份启动PowerShell,执行以下命令:
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
安装完成后,输入choco -v验证版本,出现版本号即为安装成功。
3. 解决Visual Studio工具依赖问题(按需)
如果后续需要安装visualstudio2019-workload-vctools,需先确保已安装Visual Studio 2019(至少安装核心编辑器组件),再执行:
choco install visualstudio2019-workload-vctools -y --installPath "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community"
注意:路径需匹配你的Visual Studio 2019实际安装位置,比如Enterprise版需将路径中的Community替换为Enterprise。
4. 避免Node.js捆绑安装冲突
后续安装Node.js时,取消勾选「Automatically install necessary tools」选项,单独完成Chocolatey安装后,再按需通过Chocolatey安装相关依赖工具。
内容的提问来源于stack exchange,提问作者Shafin Mahmud

