.NET 7 预览版2 的亮点之 NativeAOT 正式合并入 .NET 主线
.NET 中备受追捧和期待已久的功能NativeAOT终于出现在本周的.NET 7 预览版2中,该项目的工作仍在继续,该版本将 NativeAOT 从实验性的 dotnet/runtimelab repo 中移出合并进入稳定的运行时库 dotnet/runtime repo,但尚未在 dotnet SDK 中添加足够的支持,以使用 NativeAOT 发布项目。完成此操作后,可以对实际测试进行完善了。
.NET NativeAOT 编译器脱离实验性质正式跟随 .NET 7 Preview 2 发布到了官方 nuget 源:https://www.nuget.org/packages/Microsoft.DotNet.ILCompiler 。
从现在开始,7.0.0-* 版本基本可以放心用在生产环境。我们可用开始尝试修剪我们的应用程序,并确保没有剪裁警告。剪裁是 NativeAOT 的要求。GitHub 问题 .NET 7 中的 NativeAOT #61231 显示了正在检查的初始工作以及第一阶段的剩余工作:
NativeAOT 这个功能的完整支持真是不容易,具体怎么用可用参考 hez2010的文章:通过 .NET NativeAOT 实现用户体验升级。
这里来回顾一下这个历程:具体内容来自知乎的hez2010 的整理的内容 https://www.zhihu.com/question/472875939 :
Native AOT (2021.1~2021.7)的进展:
2021/8/12 更新:
- 正在添加对 ARMv7 平台的支持(已有 PR)
- 正在添加对接口泛型方法默认实现的支持(已有 PR)
2021/8/14 更新:
- 接口泛型方法默认实现已支持,因此 efcore 可以用 NativeAOT 了
- 泛型虚拟方法解析速度有所提升(大概 8%),编译时间更短了
2021/8/17 更新:
- NativeAOT 在 .NET 6 上计划的内容已经完成,已经可以稳定使用,另外可能会在 .NET 7 脱离实验正式发布
- ARMv7 平台支持已接近完成
![](https://pic3.zhimg.com/80/v2-479fc379ecbe1a18b2f4d23b449b036d_720w.jpg?source=1940ef5c)
2021/8/24 更新:
- NativeAOT 编译器版本已提升至 7.0.0-*
2021/9/6 更新:
- 正在适配安卓
- LLVM 从 6 升级到 12
- 完善
IDynamicInterfaceCastable
支持,对 COM 的支持度进一步改善
2021/9/17 更新:
- 支持了模块初始化器
- 正在添加对 x86 的支持
2021/12/6 更新:
- Native AOT 转正正式提上 .NET 7 计划
2021/12/15 更新:
- Native AOT 代码正式合并入 .NET 主线并启用了构建
- 无限泛型展开导致无法编译的问题已经解决
2022/3/17 更新:
1. 正式在.NET 7 Preview 2博客文章中宣布可用。
2. WPF 开始了 AOT 改造: https://github.com/dotnet/wpf/pull/6171
欢迎大家扫描下面二维码成为我的客户,扶你上云
![](https://images.cnblogs.com/cnblogs_com/shanyou/57459/o_220125090408_%E9%82%80%E8%AF%B7%E4%BA%8C%E7%BB%B4%E7%A0%81-258px.jpeg)
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 本地部署 DeepSeek:小白也能轻松搞定!
· 如何给本地部署的DeepSeek投喂数据,让他更懂你
· 在缓慢中沉淀,在挑战中重生!2024个人总结!
· 大人,时代变了! 赶快把自有业务的本地AI“模型”训练起来!
· 从 Windows Forms 到微服务的经验教训
2018-03-19 Ooui.Wasm:浏览器中的.NET
2015-03-19 微软“.Net社区虚拟大会”dotnetConf2015:关键词:.NET 创新、开源、跨平台
2012-03-19 ASP.NET Web API: 宿主(Hosting)
2010-03-19 使用Sysinternals工具定时休眠Windows Server 2008 R2