Linux环境下发布.Net Core 5应用卡在包还原阶段问题咨询
.NET 5 发布到Linux卡包还原问题解决方案
排查思路
卡restoring packages阶段属于包还原环节异常,和运行时前置要求关联度极低,优先按以下步骤排查:
- 开启诊断日志定位卡点
执行带详细日志参数的发布命令,输出全流程执行细节定位具体故障点:dotnet publish AppName.sln -v diag - 排查NuGet源网络问题
默认官方NuGet源在国内部分网络环境下访问延迟极高甚至无响应,可替换为国内镜像源,在项目根目录新建NuGet.Config文件写入以下内容:<?xml version="1.0" encoding="utf-8"?> <configuration> <packageSources> <clear /> <add key="azure-nuget-cn" value="https://nuget.cdn.azure.cn/v3/index.json" /> </packageSources> </configuration> - 清理损坏的本地缓存
本地NuGet缓存文件损坏或锁死也会导致还原卡住,执行以下命令清空所有缓存后重试:dotnet nuget locals all --clear - 校验SDK版本匹配度
执行dotnet --version确认设备上安装的.NET 5 SDK版本和项目目标框架版本一致,避免版本不兼容导致的还原异常。
补充:.NET 5运行前置要求
如果上述排查完成后发布正常,后续运行应用的前置要求如下:
- 框架依赖模式发布:目标Linux设备只需安装对应架构的.NET 5运行时,无需安装SDK
- 自包含模式发布:目标设备无需安装任何.NET相关组件,但需要预装系统基础依赖:
- Debian/Ubuntu系列:安装
libssl1.1、libicu包 - RHEL/CentOS系列:安装
openssl-libs、libicu包
基础依赖缺失只会导致运行时报错,不会影响发布环节。
- Debian/Ubuntu系列:安装
内容的提问来源于stack exchange,提问作者M.peace
相关产品推荐
相关产品推荐

