如何在Ubuntu命令行下升级C#项目的.NET Core版本并解决运行报错
报错信息如下:
应用程序依赖清单(*.deps.json)中指定的程序集未找到:
包:'runtime.linux-x64.Microsoft.NETCore.App',版本:'2.2.7'
路径:'runtimes/linux-x64/lib/netcoreapp2.2/Microsoft.CSharp.dll'
该报错核心原因是.NET Core 2.2已经停止官方支持,Ubuntu源中已经移除了相关runtime包,直接升级项目的.NET版本到长期支持(LTS)版本即可解决。
操作步骤
第一步:查看当前系统已安装的.NET版本,确认要升级的目标版本
执行命令:dotnet --list-sdks
输出会列出所有已安装的SDK版本,优先选择带LTS标识的版本,比如.NET 6、.NET 8。如果没有安装对应LTS版本,以Ubuntu 22.04安装.NET 6为例,执行以下命令安装:sudo apt update && sudo apt install dotnet-sdk-6.0第二步:修改项目的目标框架配置
找到项目根目录下后缀为.csproj的项目文件,找到<TargetFramework>节点,将原本的netcoreapp2.2修改为你安装的目标版本对应值:
比如升级到.NET 6就改为<TargetFramework>net6.0</TargetFramework>,升级到.NET 8就改为<TargetFramework>net8.0</TargetFramework>。
如果项目文件中显式引用了Microsoft.NETCore.App包,将该包的版本号也同步更新为对应SDK的版本号。第三步:清理旧依赖并重建项目
在项目根目录依次执行以下命令:- 清理旧的构建缓存和输出:
dotnet clean - 拉取新版本对应的所有依赖包:
dotnet restore - 重新构建项目:
dotnet build - 启动项目验证问题是否解决:
dotnet run
- 清理旧的构建缓存和输出:
如果执行dotnet restore时仍有个别包版本不兼容,对应升级不兼容的Nuget包版本即可。
内容的提问来源于stack exchange,提问作者Meriam Chelbi

