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

C# Telegram Bot Ubuntu发布失败:dotnet publish命令报错求助

解决.NET发布至Ubuntu 22.04时的报错问题

针对你用dotnet publish -c release -r ubuntu.22.04-x64 --self-contained发布Telegram Bot新项目时出现的报错,结合旧项目可正常发布的情况,可尝试以下解决方案:

1. 核对项目目标框架与依赖

  • 打开新项目的.csproj文件,对比旧项目的<TargetFramework>节点,确保两者使用相同的.NET版本(如net6.0/net7.0)。高版本框架可能需要额外的跨平台组件支持。
  • 检查新项目的NuGet依赖,确认没有引入Windows专属的库(如依赖Win32 API的包)——这类包会导致跨平台发布失败。执行dotnet restore查看依赖加载日志,定位异常包。

2. 清理缓存并重新发布

  • 先清理项目的编译缓存:
    dotnet clean -c release
    
  • 再重新执行发布命令,可尝试添加--no-restore参数跳过依赖还原(仅在确认依赖已正确安装时使用):
    dotnet publish -c release -r ubuntu.22.04-x64 --self-contained --no-restore
    

3. 修复.NET跨平台运行时组件

  • 卸载并重新安装Ubuntu 22.04对应的运行时workload,覆盖可能损坏的组件:
    dotnet workload uninstall ubuntu.22.04-x64
    dotnet workload install ubuntu.22.04-x64
    
  • 若仍无效,安装通用跨平台编译组件:
    dotnet workload install crossgen2
    

4. 验证本地.NET环境完整性

  • 执行以下命令检查本地已安装的SDK和运行时,确认目标RID(ubuntu.22.04-x64)的组件存在:
    dotnet --list-sdks
    dotnet --list-runtimes
    
  • 若缺失对应组件,可从.NET官方渠道下载对应版本的运行时包,放置到.dotnet/packs/Microsoft.NETCore.App.Runtime.ubuntu.22.04-x64目录下。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 14:15:11