AgileConfig 1.8.0 已适配 .NET8
Hello 大家好。本月圈子里最大的事莫過于 .NET8 正式 release。群友們都在適配 .NET8。抽個周末我也把 AgileConfig 升級到了 .NET8。下面把升級的過程簡單記錄一下,其中有個小坑,對大家升級的時候可能有所幫助。
升級
- 升級 .NET8
修改所有項目的目標(biāo)框架為 .NET8.0 - 升級 nuget 包
在 nuget 包管理器里把所有能更新的包全部更新到最新。
有一個包Microsoft.AspNetCore.Http.Abstractions提示已經(jīng)棄用,需要處理一下。
因為這個包現(xiàn)在微軟已經(jīng)不在 nuget 上提供,需要使用框架引用。
修改項目文件,在 ItemGroup里添加以下內(nèi)容:
<ItemGroup>
<FrameworkReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>
再次編譯,警告消息。
這個問題其實跟 .NET8 沒有關(guān)系,應(yīng)該是我 3.1 升 6 的時候遺忘了。
- 修改 dockerfile
原來的 dockerfile 是基于 .NET6 鏡像的,需要修改為 .NET8
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
....
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
....
把 6 改成 8,其他不用改,超級簡單。
通過以上操作,在本地運行沒有問題,打包成鏡像后在本地 docker desktop 環(huán)境下跑也沒問題。但是發(fā)布到服務(wù)器上用鏡像跑缺報錯:Failed to create CoreCLR, HRESULT: 0x80070008
警告排查是由于低版本的 docker engine 與某些 ubuntu 的鏡像不兼容,需要在 docker run 的時候添加參數(shù)。
--security-opt seccomp=unconfined
或者在 docker-compose.yml 上添加參數(shù):
security_opt:
- seccomp=unconfined
添加以上參數(shù)后一切正常了。
參考:https://docs.linuxserver.io/FAQ/#symptoms
總結(jié)
本次升級可以說相當(dāng)簡單。得益于 .NET 接口的穩(wěn)定,升級框架幾乎不用動任何一行自己的代碼。只是最新的 .aspnet8 runtime 的鏡像對低版本的 docker engine 兼容性有點問題,使用 docker 跑的同學(xué)需要注意一下。
最后
???Github地址:https://github.com/dotnetcore/AgileConfig 開源不易,歡迎star???
???Gitee地址:https://gitee.com/kklldog/AgileConfig ???
演示地址:http://agileconfig_server.xbaby.xyz/ 超級管理員賬號:admin 密碼:123456
關(guān)注我的公眾號一起玩轉(zhuǎn)技術(shù)
總結(jié)
以上是生活随笔為你收集整理的AgileConfig 1.8.0 已适配 .NET8的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: xray+bp+echole+rad
- 下一篇: asp.net ajax控件工具集 Au