经验分享 · 2023年4月9日

.Net 8.0 SDK AOT发布目前已知的限制

刚刚升级到.Net SDK 8.0 Preview2, 这是目前最新的.Net SDK 8版本。

关于AOT发布,目前已发现的限制:

1、桌面应用无法用AOT发布,控制台和Asp.net Core是可以的,而.net 7.0不支持ASP.NET CORE的AOT发布;

2、不支持Win-x86为目标发布AOT;

3、不能跨平台发布AOT程序;

4、鉴于2、3两项限制,以及目前没有Visual Studio的Ubuntu版本或其它linux版本,所以linux平台支持的AOT也是无法实现的。可否通过Visual Studio Code实现待验证;

我目前在windows 11 X64下发布的面向win-x64的AOT,在 win7/win10/win11 x64运行都是正常的;在OSX M2 芯片和OSX Intel上面发布AOT程序待测试

5、如果使用了反射等函数,AOT发布可以成功,但运行时会出错;