2022.11.18 Native AOT 正式发布,不再是 实验性项目。
.Net 7 Console App & WebApi 使用PublishAOT = true,直接编译 成exe,无rutime依赖,智能裁剪,体积小,启动快。
环境:
1.更新VS2022 到最新版本(支持.net 7)
2.VS2022 安装 使用C++ 桌面开发
踩坑:
1.程序里一些 没有应用到的 方法会被裁剪掉,包括泛型注入等。
可以使用 rd.xml 配置来告诉 ILCompiler,那些是需要的
截图是,webapi-serilog 的skins rd.xml配置.
2.遇到 link.exe不是内部或外部命令
这个是安装 C++桌面开发,缺少组件引起的。我这边直接拷贝link.exe到项目目录,解决了编译问题,暂时还没有找到 是什么问题引起的。
可能是注册表:计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor\Autorun=chcp 65001 引起的,修改为@chcp 65001>nul,就好了
D:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.34.31933\bin\Hostx64\x64
Native AOT deployment overview - .NET | Microsoft Learn
Runtime Directives (rd.xml) Configuration File Reference - UWP applications | Microsoft Learn