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 的时候遗忘了。

  • 修改 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 环境下跑也没问题。但是发布到服务器上用镜像跑缺报错: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 跑的同学需要注意一下。

AgileConfig 1.8.0 已适配 .NET8的更多相关文章

  1. adobe premiere pro cc2015.0已停止工作 解决办法

    adobe premiere pro cc2015.0已停止工作 一直报错 解决办法就是: 删除我的电脑  我的饿文档下的 Adobe下的Premiere Pro文件夹 现象就是怎么重新安装都不管用P ...

  2. NDepend 3.0已与Visual Studio集成

    NDepend 3.0已与Visual Studio集成 投递人 itwriter 发布于 2010-02-10 16:17 评论(0) 有1638人阅读  原文链接  [收藏]  « » NDepe ...

  3. 错误 : 资产文件“项目\obj\project.assets.json”没有“.NETCoreApp,Version=v2.0”的目标。确保已运行还原,且“netcoreapp2.0”已包含在项目的 TargetFrameworks 中。

    升级 vs201715.6.3之后发布出现 错误 : 资产文件“项目\obj\project.assets.json”没有“.NETCoreApp,Version=v2.0”的目标.确保已运行还原,且 ...

  4. Swift3.0已出坑-适配iOS10,项目迁移Swift3.0问题总结。

    http://www.jianshu.com/p/27fd2a2b32e4 Yes表示swift版本为2.3 NO表示swift版本为3.0

  5. 推送通知/传感器/UIDynamic仿真(推送通知已适配iOS10)

    推送通知/传感器/UIDynamic 一.推送通知 1.推送通知简介 什么是推送通知 此处的推送通知与NSNotification没有任何关系 可以理解为,向用户推送一条信息来通知用户某件事情 作用: ...

  6. FineUIPro v5.2.0已发布(jQuery升级,自定义图标,日期控件)

    FineUIPro/MVC/Core/JS v5.2.0 已经于 2018-8-20 发布,官网示例已更新,如果大家在测试中发现任何问题,请回复本帖,谢谢了. 在线示例: FineUI Pro:htt ...

  7. AgileConfig 1.6.0 发布 - 支持服务注册与发现

    大家好,好久没有输出博文了,一是因为比较忙,另外一个原因是最近主要的精力是在给 AgileConfig 添加一个新的功能:服务注册与发现. 先说说为什么会添加这个功能.我自己的项目是用 Consul ...

  8. <更新日期03-31-2016> 复利计算5.0 <已改进>

    作业要求: 1.客户说:帮我开发一个复利计算软件. 完成复利公式计算程序,并成功PUSH到github上. 客户提出: 2.如果按照单利计算,本息又是多少呢? 3.假如30年之后要筹措到300万元的养 ...

  9. Android 6.0权限适配

    targetSdkVersion 23以上,必须适配新的权限模式 安卓6.0及之后,权限分为三类  1.不涉及隐私的正常权限,如innernet2.危险权限 3.特殊权限 system_alert_w ...

  10. Android项目实战(四十九):Andoird 7.0+相机适配

    解决方案类似: Android项目实战(四十):Andoird 7.0+ 安装APK适配 解决方法: 一.在AndroidManifest.xml 文件中添加 四大组件之一的 <provider ...

随机推荐

  1. 《高级程序员 面试攻略 》RocketMQ 如何保证顺序性

    RocketMQ 提供了一种称为顺序消息的机制来确保消息的顺序性.下面是一些关键的方法和概念: 1. 顺序消息:顺序消息是指在发送和消费过程中,消息按照特定的顺序进行处理.RocketMQ 通过将消息 ...

  2. 【技术积累】Java里的volatile关键字到底能干嘛?

    7.4 最害怕的一集 - volatile 7.4.1 最简单的一集 - volatile 语义 (难度 : ) 读 -> 读一个 volatile 必须从 主内存读 写 -> 写一个 v ...

  3. 微服务下使用maven做多环境配置

    分享技术,用心生活 前言:很多项目在开发,提测,上线时都会提前手动改一些配置文件来适应对应环境,麻烦不说了,而且也容易出错:生产环境的配置也容易暴露.基于此,我们基于spring cloud alib ...

  4. vue3 甘特图(一):选择与初始化甘特图

    vue3 甘特图(一) 1.功能使用背景: 甘特图是一种项目管理工具,以图形直观的方式显示项目的时间轴和任务计划,为了可扩展和定制相关任务的开发,故此选择dhtmlx-gantt 2.vue3 初始化 ...

  5. 升讯威在线客服系统的并发高性能数据处理技术:高性能TCP服务器技术

    我在业余时间开发维护了一款免费开源的升讯威在线客服系统,也收获了许多用户.对我来说,只要能获得用户的认可,就是我最大的动力. 最近客服系统成功经受住了客户现场组织的压力测试,获得了客户的认可. 客户组 ...

  6. Burp Suite抓包工具配置代理手机抓取数据包

    工作中很多手机上的问题因为环境差异导致无法在pc设备上完整的模拟真实物理手机,因此需要方法能抓取到手机设备上所有数据包发送详情.发现了这个好用的数据包抓取工具Burp Suite. 一.配置流程: 1 ...

  7. 「loj - 3489」「joisc 2021 day 1」Food Court

    link. 感觉好久没写过题解了, 这就是永远在骚动的得不到吧. 星尘 infinity 真的非常行, 就算是 ja voicebase 都不知道吊打那群日 v 多少圈. 我推荐你们都去听一听. ch ...

  8. python3 gui 计时器

    # -*- coding: utf-8 -*- # @Time : 2023/4/4 21:53 # @File : 定时器gui.py # @Software: PyCharm Community ...

  9. MQ系列15:MQ实现批量消息处理

    MQ系列1:消息中间件执行原理 MQ系列2:消息中间件的技术选型 MQ系列3:RocketMQ 架构分析 MQ系列4:NameServer 原理解析 MQ系列5:RocketMQ消息的发送模式 MQ系 ...

  10. 【译】A unit of profiling makes the allocations go away

    在 Visual Studio 17.8 Preview 2 中,我们更新了单元测试分析,允许你在性能分析器中使用任何可用的工具--而不仅仅是仪表工具.有了这个更改,可以很容易地快速分析孤立的小工作单 ...