最近的 dotnet 版本(dotnet 6 和 7)具有提前 (AOT) 编译功能。根据官方文档,有不同的方法可以实现这一目标。
<PropertyGroup>
<PublishAot>true</PublishAot>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
<PropertyGroup>
<PublishReadyToRun>true</PublishReadyToRun>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
<PropertyGroup>
<RunAOTCompilation>true</RunAOTCompilation>
</PropertyGroup
Run Code Online (Sandbox Code Playgroud)
仅通过阅读文档很难理解这个概念。PublishReadyToRun 与 PublishAot 之间有什么区别?何时使用其中一种而不是另一种?以及如何为类库、blazor wasm 和 asp.net core 项目启用 AoT 编译?
小智 5
AOT 的意思是:编译器将生成本机代码可执行文件,应用程序可以在未安装 .NET 运行时的机器上运行。
R2R 编译是“AOT 的一部分”。您的应用程序需要安装 .NET 运行时才能运行。但是,与完全 .net 二进制文件相比,启动性能得到了提高。