Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gRPC har stöd för .NET native ahead-of-time (AOT) i .NET 8. Intern AOT möjliggör publicering av gRPC-klient- och serverappar som små, snabba inbyggda körbara filer.
Varning
I .NET 8 är inte alla ASP.NET Core-funktioner kompatibla med intern AOT. Mer information finns i ASP.NET Core och intern AOT-kompatibilitet.
Kom igång
AOT-kompilering sker när appen publiceras. Native AOT är aktiverat med alternativet PublishAot .
Lägg till
<PublishAot>true</PublishAot>i gRPC-klientens eller serverappens projektfil. Detta aktiverar intern AOT-kompilering under publiceringen och aktiverar analys av dynamisk kodanvändning under kompilering och redigering.<Project Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup> <TargetFramework>net8.0</TargetFramework> <PublishAot>true</PublishAot> </PropertyGroup> <ItemGroup> <PackageReference Include="Grpc.AspNetCore" Version="2.51.0" /> <PackageReference Include="Google.Protobuf" Version="3.22.0" /> </ItemGroup> </Project>Man kan också aktivera Native AOT genom att ange
--aot-alternativet med ASP.NET Core gRPC-mallen.dotnet new grpc --aotPublicera appen för en specifik körningsidentifierare (RID) med hjälp av
dotnet publish -r <RID>.
Appen är tillgänglig i publiceringskatalogen och innehåller all kod som behövs för att köras i den.
Intern AOT-analys innehåller all appkod och de bibliotek som appen är beroende av. Granska interna AOT-varningar och vidta korrigerande åtgärder. Det är en bra idé att testa publiceringsappar ofta för att upptäcka problem tidigt i utvecklingslivscykeln.
Optimera publiceringsstorlek
En inhemsk AOT-körbar fil innehåller bara den kod från externa beroenden som krävs för att stödja appen. Oanvänd kod trimmas automatiskt bort.
Publiceringsstorleken för en ASP.NET Core gRPC-tjänst kan optimeras genom att skapa värdverktyget med WebApplication.CreateSlimBuilder(). Den här byggaren innehåller en minimal lista över funktioner som krävs för att köra en ASP.NET Core-app.
var builder = WebApplication.CreateSlimBuilder(args);
builder.Services.AddGrpc();
var app = builder.Build();
app.MapGrpcService<GreeterService>();
app.Run();
Fördelar med att använda intern AOT
Appar som publicerats med native AOT har:
- Minimerat diskavtryck
- Kortare starttid
- Minska minnesbehovet
Mer information och exempel på fördelarna med intern AOT finns i Fördelar med att använda intern AOT med ASP.NET Core.
Ytterligare resurser
ASP.NET Core