V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
d0wnl0ad
V2EX  ›  .NET

.net core 2.2 升级到最新 LTS

  •  
  •   d0wnl0ad · 2022-02-27 19:28:09 +08:00 via Android · 3179 次点击
    这是一个创建于 759 天前的主题,其中的信息可能已经有所发展或是发生改变。
    有鉴于公司的底层 OS 需要更新,公司在评估.net core 下写的代码要如何处置。。。

    但是工程师全部被拖到另外一个项目里面去,结果需要一个 n 久没有开发过的去预估难度(默)

    想问下各位大佬有什么建议?除了传说中的全部炸掉重来,有可能套娃式升级嘛?

    如果有大佬想赚外块欢迎联系~

    MTg2ODE1NTcyNzM=
    18 条回复    2022-05-15 19:06:07 +08:00
    quan01994
        1
    quan01994  
       2022-02-27 19:33:53 +08:00   ❤️ 1
    应该不会有什么问题。
    yejinmo
        2
    yejinmo  
       2022-02-27 19:40:05 +08:00   ❤️ 1
    前段时间刚把公司后端从 .Net Core 3.1 升级到 .Net 6.0
    感觉除了部分方法需要重写,没啥成本啊
    userforg2021
        3
    userforg2021  
       2022-02-27 20:00:27 +08:00   ❤️ 1
    2.2 升级的话变动还是有点大,不过业务代码应该不用动。Host 构建需要改一下,json 序列化有变动,endpoint 机制不同。其他的应该都兼容。参见官方文档。https://docs.microsoft.com/zh-cn/aspnet/core/migration/22-to-30?view=aspnetcore-6.0&tabs=visual-studio
    hervey0424
        4
    hervey0424  
       2022-02-27 20:34:39 +08:00   ❤️ 1
    基本没啥太多变化
    sunhelter
        5
    sunhelter  
       2022-02-27 21:05:40 +08:00   ❤️ 1
    问题不大,先从 2.2 升到 3.1 ,修复中断性变更导致的错误,再从 3.1 升 6 基本不需要改
    thinkershare
        6
    thinkershare  
       2022-02-27 21:36:52 +08:00   ❤️ 1
    最新的 LTS 是 6.0 , 你们如果没有使用太多第三方库, 升级还是非常容易的, .NET Core 2.2 这种短命的版本为什么会用于生产环境呢?用也应该是.NET Core 2.1
    ragnaroks
        7
    ragnaroks  
       2022-02-27 21:43:21 +08:00   ❤️ 1
    建议新建一个 6.0 的项目模板,然后从旧项目复制除 Startup.cs 以外的所有文件,再重现适配一下
    forgottencoast
        8
    forgottencoast  
       2022-02-27 23:12:48 +08:00   ❤️ 1
    感觉应该比较轻松,.Net 向前兼容一直都做的很好的。
    建议找几个不同类型的典型项目先试试看,大概心中就有数了。
    d0wnl0ad
        9
    d0wnl0ad  
    OP
       2022-02-27 23:33:45 +08:00 via Android
    谢谢大家的回应,对这件事情多少有点谱了,至于为啥是用了 2.2 ,只能说供应商太,太,太靠谱了 (默)
    thinkershare
        10
    thinkershare  
       2022-02-28 01:09:01 +08:00   ❤️ 1
    @d0wnl0ad 遇到问题可用 @我, 我有时间会回复你的, 基本的问题应该都能给你解决, 我们也才刚刚将项目从 3.1 升级到.NET 6
    andrewpsy
        11
    andrewpsy  
       2022-02-28 01:42:33 +08:00   ❤️ 1
    如果项目的单元测试覆盖率好那应该比较轻松。
    如果覆盖率不行,得从当前运行的版本往想要升级到的版本看每一版都有什么不兼容变化,可能要修改逻辑。这只能保证你们自己的代码迁移成功,其它用到的库就不好说了。
    weiweiwitch
        12
    weiweiwitch  
       2022-02-28 07:41:22 +08:00 via Android   ❤️ 1
    我们公司有个工具,解析 Excel 的,从 2.1 升级到 3.1 ,然后读取有公式的 cell 就会出错。
    所以测试完善了再升级。
    netnr
        13
    netnr  
       2022-02-28 08:56:02 +08:00 via Android   ❤️ 1
    EF 有个调整,以前不能转脚本的会把全部数据读取到内存再处理,现在报错
    coder001
        14
    coder001  
       2022-02-28 14:14:04 +08:00   ❤️ 1
    @netnr #13 这大概是把 IQueryable 当成 IEnumerable 用才会把数据全都抓到内存来筛选吧
    我也有过傻傻分不清 Expression<Func<T, bool>> 和 Func<T, bool> 的过去,毕竟写出来的代码完全一样
    netnr
        15
    netnr  
       2022-02-28 18:27:48 +08:00 via Android   ❤️ 1
    @coder001 不是的
    thtznet
        16
    thtznet  
       2022-02-28 22:12:56 +08:00   ❤️ 1
    .net 2.2 除了启动入口有些写法变化,业务代码基本不需要改动,升级并不复杂,升级后基本上服务能起来就算成功。
    forgottencoast
        17
    forgottencoast  
       2022-03-03 19:33:50 +08:00   ❤️ 1
    @coder001 这种肯定是没有检查过生成的 SQL 语句。
    Aloento
        18
    Aloento  
       2022-05-15 19:06:07 +08:00
    从 framework 更新到.NET 6 都没有太恶心
    从 2 到 6 更没问题了
    直接更新然后看报错就行了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   4661 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 10:03 · PVG 18:03 · LAX 03:03 · JFK 06:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.