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

启动nuget.exe时出现未处理异常,求无VS的.NET构建服务器解决方案

解决NuGet.exe启动时的System.NotSupportedException(安全协议不支持)问题

你遇到的这个错误核心原因很明确:你的NuGet.exe尝试使用的旧版安全协议(比如TLS 1.0/1.1)已经被NuGet.org和绝大多数包源弃用,而因为你没有安装Visual Studio,系统默认的.NET Framework配置没有启用更安全的TLS 1.2/1.3协议,导致NuGet无法和包源建立连接。

下面给你几个不需要依赖Visual Studio的解决办法,按优先级推荐:

1. 升级到最新版NuGet.exe

旧版本的NuGet.exe可能硬编码了对旧安全协议的依赖,直接替换成最新版的NuGet.exe是最简单的方案——新版NuGet默认支持TLS 1.2及以上协议,不需要额外配置。

2. 修改系统注册表强制启用强加密协议

这个方法会让所有基于.NET Framework 4.x的应用默认使用TLS 1.2+,适合长期稳定的构建服务器环境:

  • 按下Win+R,输入regedit打开注册表编辑器
  • 分别定位到以下路径(64位系统需要同时修改两个路径):
    • 32位系统:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319
    • 64位系统额外添加:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319
  • 在每个路径下右键新建DWORD(32位)值,命名为SchUseStrongCrypto,设置数值数据为1
  • 重启你的构建服务器,让注册表修改生效

3. 临时通过环境变量启用强加密(适合快速测试)

如果不想修改注册表或重启服务器,可以在运行NuGet命令前先设置环境变量:

setx SCHANNEL_USE_STRONG_CRYPTO 1

设置完成后关闭当前命令提示符窗口,重新打开一个新窗口再运行NuGet命令,这个变量会强制.NET Framework应用使用符合要求的安全协议。

验证方法

修改完成后,运行nuget.exe list命令,如果能正常列出包源中的包,说明问题已经解决了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:05:00