3.1-8-.NET-Core-从-.NET-无缝更新到-摸索全面变更指南 (318川藏线)
Core3.1曾经用了很长一段期间,其真实2022年的年底微软曾经不提供支持了,前面的一个LTS版本.NET6也会在2024年11月中断支持,所以间接更新到.NET8是最好的选用。
微软官网推出了更新工具:UpgradeAssistant,链接地址如下:
有了更新工具,更新就变得十分繁难了,本文就引见经常使用更新工具将.NETCore3.1名目更新到.NET8。
装置UpgradeAssistant
先确保VS2022曾经更新到了17.8。而后在VS2022的裁减治理中装置裁减:.NETUpgradeAssistant,须要特意留意的是,假设之前装置过更新工具裁减,须要卸载从新装置。
更新名目
.NETCore3.1的一个处置打算中,会有很多的名目,依照名目的依赖相关,从最底层的名目一一往上启动更新。
装置完更新工具后,在名目上点击右键就会产生Upgrade按钮:
在弹窗当选用更新模式:
选用更新的指标版本,这里我选用.NET8,这是一个长线支持版本,最新版本的更新工具只支持更新到7和8了,假设有更新到.NET6的需求,就须要经常使用老版本了:
选用须要更新的内容,自动全选,点击「Upgradeselection」启动更新:
很快就可以看到更新成功的揭示:
编译
我验证过好几个低版本的名目,经常使用工具更新的环节没有产生果任何失误,但更新完后启动代码编译就会产生各种疑问了。
疑问1:Ionic.zip
在原来的版本中,名目中的zip紧缩用到了Ionic.zip,如今.NET8曾经不支持了,须要换成DotNetZip:
疑问2:BinaryFormatter曾经过期
代码中有不少中央经常使用到了二进制的序列化,但BinaryFormatter在.NET8中曾经弃用,有两种处置模式:
<Project><PropertyGroup>...<NoWarn>$(NoWarn);SYSLIB0011</NoWarn></PropertyGroup></Project>
参考:。
疑问3:Aspose经常使用疑问
名目中对文件的处置,经常使用了Aspose套件,更新后版本有兼容性疑问,更新到对应的版本就行。
疑问4:方法二义性
在之前的版本中,List存储的假设是一个复杂类型,想要依照类型中的某个字段启动去重是没方法间接成功的:
List<UserInfo>list=newList<UserInfo>();list.Add(newUserInfo(){,Age=18});list.Add(newUserInfo(){Name="oec2003",Age=18});list.Add(newUserInfo(){Name="oec2004",Age=18});list.Add(newUserInfo(){Name="oec2004",Age=18});vardistnctList=list.DistinctBy(x=>x.Age);foreach(varitemindistnctList){Console.WriteLine(item.Name);}publicclassUserInfo{publicstringName{get;set;}publicintAge{get;set;}}
上方代码中的DistinctBy方法在.NETCore3.1中是没有的,所以咱们裁减了一个DistinctBy方法,没想到.NET8中曾经自动提供了,会造成方法抵触,只有要将咱们的裁减方法去掉,经常使用自动就好。
运转
处置了上方的几个编译疑问后,程序就能反常启动运转了,整个环节还是十分极速的,不得不说,微软的技术向下兼容做的是十分不错的,再加上工具的加持,更新到新的版本没有什么压力和累赘。
相比之下,其余有些技术只管也在不停地更新迭代,但干流经常使用的还是某个特定的版本。
.NET平台系列6 .NET Core 发展历程
本系列技术大约30篇文章,欢迎关注、点赞、评论、转发,每天都能获取IT优质内容。
Core 历程
以下内容来自微软团队:
【大约两年前,我们开始收到一些客户对于 在Linux系统上的请求。在同一时期,我们开始与Windows Server Team讨论关于Windows Nano,它们的未来和一些较小的服务型产品。结果,我们开始了一个新的代号为“Project K”面向新平台的项目。我们沿着一条线多次更改名称、外观和体验,在每次运行过程都尽量让它更完善,适用于更多情况和更多的基础开发人员。非常高兴这个项目最终成为可用的 Core和ASP Core 1.0。
开源代码是这个项目另外一个重要的主题。随着时间的推移,我们注意到所有的主流网络平台都是开源代码。 MVC已经开放源代码很长时间了,但它下面的平台, Framework并没有开放源代码。对于那些非常关心开源代码,以及认为MVC的开源不够全面的开发人员,我们并没有给出回答。随着今天的发布, Core是一个自上而下的开源网络平台。甚至文档也是开源的,对于任何一个对他们的网络协议栈有开源代码需求的人来说 Core都是一个不错的选择。
我想对每个已经尝试 Core和 Core并且给我们反馈的人表示我们的感激之情。我们知道成千上万的人已经使用过先前的1.0产品,谢谢!我们已经收到许多关于产品设计选择,用户体验、性能、通信和其他主题的反馈。我们尽我们最大的努力响应了所有的反馈。有了这些反馈这次发布才能更加成功。没有你们我们不可能完成它。谢谢!
如果你不是一开发者或者没有应用过,现在正是尝试它的好时机。你可以在任何操作系统上、用任何工具,对于任意一个应用感受没有限制的生产力和力量。所有的开源代码,都得力于社区和微软的支持,查看了解操作范围。】
在我的上一篇博客《平台系列5 Core 简介》中主要介绍了的基本情况,主要包括跨平台的缘由、 Core的定义、 Core的核心功能、 Core的包管理、 Core 执行的应用程序类型、 Core 与其他平台的关系、 Core 支持的操作系统、 Core 支持开发的应用等。微软宏伟目标到底发展的如何,首先通过下面的一幅图可以直观地了解。
2014年2月4日,微软云计算事业部副总裁萨提亚·纳德拉 出任微软第三任CEO,改变微软企业文化,开始开源、拥抱Linux。2015年微软对平台进行了重新设计与架构。
2016年6月27日, Core1.0 项目正式发布,彻底改变了 Windows Only 的场景,拥抱开源。同时也得到了全世界开发者的喜爱与支持,很多顶级大牛为 Core贡献代码,发展非常迅速,顺势推出了 Core1.1、 Core2.0、 Core2.1、 Core2.2、 Core3.0、 Core 3.1、5,最新推出 6预览版,预计到2021年11月,正式发布6。
Core 版本支持
从微软官网可以了解到,团队到2021年8月21日将停止支持 Core 2.1 版本、到2022年12月3日将停止支持 Core 3.1版本。5.0 是目前微软推荐的可用于生产环境的最新版本,6.0目前处于预览版本,个人学习可以使用,不建议用到生产环境,待6.0正式版发布后,基于 Core 3.1 或者 5.0的项目可以无缝迁移到 6.0。
本系列技术大约30篇文章,欢迎关注、点赞、评论、转发,每天都能获取IT优质内容。
#国际体操协会解释桥本大辉跳马打分#
#南京、张家界或形成疫情传播双中心#
#刘德华抖音看播人数破亿#
#黄晓明祝贺表妹陈梦获女乒冠军#
#南京疫情已蔓延至15省27市#
免责声明:本文转载或采集自网络,版权归原作者所有。本网站刊发此文旨在传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及版权、内容等问题,请联系本网,我们将在第一时间删除。同时,本网站不对所刊发内容的准确性、真实性、完整性、及时性、原创性等进行保证,请读者仅作参考,并请自行核实相关内容。对于因使用或依赖本文内容所产生的任何直接或间接损失,本网站不承担任何责任。