今天看到一个文章说.net 9 x86的aot支持win7和xp环境了,我记得之前aot的版本也是对系统有要求的,也就是得到win7 sp1以上才行。 我下载了.net 9的rc版本试了下,发现还是和以前一样的依赖。 把那个文章再细看了一下, 发现它是通过vc-ltc这个运行库替换了默认的vc 运行库, 在虚拟机简单试过, 还真能的在非sp1的win7上运行。
由于现在没有时间,先列举一下相关文章,后续再整理:
- 好消息:NET 9 X86 AOT的突破 - 支持老旧Win7与XP环境
- Add .NET native AOT support · Issue #32 · Chuyu-Team/VC-LTL5 (github.com)
虽然非sp1的win7非常少了, 但我觉得这个还是非常有意义的。因为win7还是有不少保有量的, 即使想检测下当前程序是否能满足程序运行条件也是比较麻烦的。 比如说我以前想发布一个客户端程序的时候, 即使是self contain的包, 也必须用c++来写一个Inno Setup安装包的插件, 检测下当前是否是win7 sp1以上的环境, 并进行相应提示或补丁的自动安装(win7 sp1也还需要安装补丁)。这个用c++写实际上也有一堆依赖,依然比较麻烦,用.net aot的方式写这个插件应该会简化不少。