AgileConfig 1.8.0 已适配 .NET8

Hello 大家好。本月圈子里最大的事莫过于 .NET8 正式 release。群友们都在适配 .NET8。抽个周末我也把 AgileConfig 升级到了 .NET8。下面把升级的过程简单记录一下,其中有个小坑,对大家升级的时候可能有所帮助。

升级

  • 升级 .NET8
    修改所有项目的目标框架为 .NET8.0

  • 升级 nuget 包
    在 nuget 包管理器里把所有能更新的包全部更新到最新。

    有一个包 Microsoft.AspNetCore.Http.Abstractions 提示已经弃用,需要处理一下。

    因为这个包现在微软已经不在 nuget 上提供,需要使用框架引用。
    修改项目文件,在 ItemGroup里添加以下内容:

    <ItemGroup> <FrameworkReference Include="Microsoft.AspNetCore.App" /> </ItemGroup>

再次编译,警告消息。

这个问题其实跟 .NET8 没有关系,应该是我 3.1 升 6 的时候遗忘了。

把 6 改成 8,其他不用改,超级简单。

通过以上操作,在本地运行没有问题,打包成镜像后在本地 docker desktop 环境下跑也没问题。但是发布到服务器上用镜像跑缺报错:Failed to create CoreCLR, HRESULT: 0x80070008

警告排查是由于低版本的 docker engine 与某些 ubuntu 的镜像不兼容,需要在 docker run 的时候添加参数。

--security-opt seccomp=unconfined

或者在 docker-compose.yml 上添加参数:

security_opt:
    - seccomp=unconfined

添加以上参数后一切正常了。

参考:https://docs.linuxserver.io/FAQ/#symptoms

总结

本次升级可以说相当简单。得益于 .NET 接口的稳定,升级框架几乎不用动任何一行自己的代码。只是最新的 .aspnet8 runtime 的镜像对低版本的 docker engine 兼容性有点问题,使用 docker 跑的同学需要注意一下。

最后

✨✨✨Github地址:https://github.com/dotnetcore/AgileConfig 开源不易,欢迎star✨✨✨

✨✨✨Gitee地址:https://gitee.com/kklldog/AgileConfig ✨✨✨

演示地址:http://agileconfig_server.xbaby.xyz/ 超级管理员账号:admin 密码:123456

关注我的公众号一起玩转技术

相关推荐
代码拾光3 天前
.NET Core 中如何构建一个弹性的 HTTP 请求机制?
.net core
代码拾光6 天前
在 .NET Core中如何使用 Redis 创建分布式锁
.net core
代码拾光7 天前
C#中如何使用异步编程
.net core
代码拾光8 天前
在 ASP.NET Core WebAPI如何实现版本控制?
.net core
下一秒_待续9 天前
.Net8 Avalonia跨平台UI框架——<vlc:VideoView>控件播放海康监控、摄像机视频(Windows / Linux)
跨平台·.net core·avalonia
代码拾光9 天前
如何在 ASP.NET Core 中实现速率限制?
.net core
代码拾光11 天前
.NET Core 委托原理解析
.net core
代码拾光12 天前
中间件 vs 过滤器
.net core
代码拾光13 天前
了解 ASP.NET Core 中的中间件
.net core
petunsecn13 天前
EFCore HasDefaultValueSql
c#·.net core