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

Visual Studio使用NuGet安装包报NU3037签名证书过期问题咨询

NuGet安装包报签名证书过期、信任链错误的解决方法

报错核心原因

NU3037、NU3028系列错误由两个问题叠加导致:

  1. 本地系统的受信任代码签名证书链未更新,微软旧代码签名证书对应的时间戳CA证书不在信任列表内,即便包带有合法时间戳,也无法通过签名校验
  2. 本地网络无法访问证书吊销列表服务器,NuGet默认开启的在线吊销校验直接失败,拦截包安装流程

报错中提到的2021年过期的微软签名证书本身不需要删除——带合法时间戳的包,哪怕签名时使用的证书后续过期,只要时间戳有效就应当被信任,报错核心是信任链缺失和吊销检查失败,并非旧证书本身存在导致的问题。


方案1:更新系统受信任证书链(优先推荐,永久解决)

  • 完全退出所有Visual Studio进程,可在任务管理器确认无devenv.exe相关进程运行
  • 打开Windows更新,检查并安装所有更新,尤其是可选更新里标记为「根证书更新」的补丁,系统会自动同步最新的DigiCert、微软代码签名相关根证书、CA证书,补全缺失的信任链
  • 如果不想走系统更新,可按Win+R输入certmgr.msc打开证书管理器,在「受信任的根证书颁发机构」目录手动导入最新的DigiCert SHA2系列代码签名根证书
  • 操作完成后重启Visual Studio,绝大多数场景下可直接解决证书过期类报错

方案2:调整证书吊销检查模式(解决吊销服务器无法访问问题)

如果更新证书后仍报吊销检查相关警告/错误,是因为本地网络无法连通证书吊销列表服务器,可按以下步骤调整配置:

  • Visual Studio图形化配置:打开VS依次进入「工具」-「选项」-「NuGet包管理器」-「常规」,找到「证书吊销检查」项,将默认的「在线检查」修改为「离线检查」
  • 命令行场景配置:给系统添加全局环境变量DOTNET_CERTIFICATE_REVOCATION_MODE=Offline,或在执行包安装命令时追加参数--revocation-mode Offline
  • 注意:关闭在线吊销检查会略微降低包校验安全性,仅建议在本地开发环境、确认使用的NuGet源为官方源或可信私有源时使用

方案3:清理本地NuGet缓存

部分场景是本地NuGet缓存存储了带旧签名元数据的包文件,导致每次安装都读取错误的签名信息:

  • 命令行执行:如果使用NuGet原生工具,执行nuget locals all -clear;如果使用dotnet工具链,执行dotnet nuget locals all --clear
  • 图形化操作:在Visual Studio的NuGet包管理器设置页,直接点击「清除所有NuGet缓存」按钮即可
  • 清理完成后重启VS再尝试安装包即可

内容的提问来源于stack exchange,提问作者H. Zucki

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 21:48:14