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.
Den här artikeln beskriver hur du uppdaterar en ASP.NET Core i .NET 8 till ASP.NET Core i .NET 9.
Prerequisites
Visual Studio 2022 med arbetsuppgiften ASP.NET och webbutveckling.
Uppdatera .NET SDK-versionen i global.json
Om du förlitar dig på en global.json fil för att rikta in dig på en specifik .NET SDK-version uppdaterar version du egenskapen till den .NET 9 SDK-version som är installerad. Till exempel:
{
"sdk": {
- "version": "8.0.100"
+ "version": "9.0.100"
}
}
Uppdatera målramverket
Uppdatera projektfilens Target Framework Moniker (TFM) till net9.0:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
- <TargetFramework>net8.0</TargetFramework>
+ <TargetFramework>net9.0</TargetFramework>
</PropertyGroup>
</Project>
Uppdatera paketreferenser
I projektfilen uppdaterar du attributet för varje Microsoft.AspNetCore.*, Microsoft.EntityFrameworkCore.*, Microsoft.Extensions.*och System.Net.Http.Json paketreferens Version till 9.0.0 eller senare. Till exempel:
<ItemGroup>
- <PackageReference Include="Microsoft.AspNetCore.JsonPatch" Version="8.0.2" />
- <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="8.0.2" />
- <PackageReference Include="Microsoft.Extensions.Caching.Abstractions" Version="8.0.0" />
- <PackageReference Include="System.Net.Http.Json" Version="8.0.0" />
+ <PackageReference Include="Microsoft.AspNetCore.JsonPatch" Version="9.0.0" />
+ <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="9.0.0" />
+ <PackageReference Include="Microsoft.Extensions.Caching.Abstractions" Version="9.0.0" />
+ <PackageReference Include="System.Net.Http.Json" Version="9.0.0" />
</ItemGroup>
Ersätt UseStaticFiles med MapStaticAssets
Optimera hanteringen av statiska filer i dina webbappar genom att UseStaticFiles ersätta med MapStaticAssets i appens Program fil:
- app.UseStaticFiles();
+ app.MapStaticAssets();
I MVC- och Razor Pages-appar behöver du dessutom länka ett anrop till .WithStaticAssets efter MapRazorPages eller MapControllerRoute i Program.cs. Ett exempel finns i Statiska filer i ASP.NET Core.
ASP.NET Core fingeravtrycker och förkomprimerar automatiskt dina statiska filer vid bygg- och publiceringstillfälle och använder sedan MapStaticAssets slutpunktsroutning för att visa de optimerade filerna som slutpunkter med lämpliga cachehuvuden.
Så här löser du filnamnen med fingeravtryck från din app:
Använd Blazor egenskapen i ComponentBase.Assets appar. Uppdatera explicita referenser till statiska tillgångar i Razor komponentfiler (
.razor) för att använda@Assets["{ASSET PATH}"], där{ASSET PATH}platshållaren är sökvägen till tillgången. Observera att detta INTE bör göras för ramverksskripten Blazor (blazor.*.js). I följande exempel är Bootstrap, Blazor-projektmallens appformatmall (app.css) och CSS-isoleringsformatmallen (baserat på en apps namnområdeBlazorSample) länkade i en rotkomponent, vanligtvis denAppkomponenten (Components/App.razor):<link rel="stylesheet" href="@Assets["bootstrap/bootstrap.min.css"]" /> <link rel="stylesheet" href="@Assets["app.css"]" /> <link rel="stylesheet" href="@Assets["BlazorSample.styles.css"]" />I MVC &
Pages-appar kommer hjälpverktygen för skript- och länktaggar automatiskt att tilldela filnamn med unika identifierare.
Lös filnamnen med fingeravtryck när du importerar JavaScript-moduler genom att lägga till en genererad importkarta:
I Blazor appar lägger du till komponenten (ImportMap) till innehållet i appens rotkomponent, oftast i
<head>komponenten (App):<ImportMap />Lägg till Razor i huvudsektionen i huvudlayoutfilen för MVC- och
<script type="importmap"></script>-sidappar, som uppdateras av Importkarta-taghjälparen.
Mer information finns i följande resurser:
Blazor
Implementera förenklad serialisering av autentiseringstillstånd för Blazor Web Apps
Blazor Web Apps kan eventuellt införa förenklad serialisering av autentiseringstillstånd.
I serverprojektet:
Ta bort den persistenta autentiseringstillståndsprovidern (
PersistingAuthenticationStateProvider.cs).Ta bort registreringen av tjänsten från
Program-filen. Länka i stället ett anrop till AddAuthenticationStateSerialization på AddRazorComponents:- builder.Services.AddScoped<AuthenticationStateProvider, PersistingAuthenticationStateProvider>(); builder.Services.AddRazorComponents() .AddInteractiveServerComponents() .AddInteractiveWebAssemblyComponents() + .AddAuthenticationStateSerialization();
API:et serialiserar endast serversidans namn och rollanspråk för åtkomst i webbläsaren. Om du vill inkludera alla anspråk anger du SerializeAllClaims till true:
.AddAuthenticationStateSerialization(options => options.SerializeAllClaims = true);
I kundprojektet (.Client):
Ta bort providern för beständiga autentiseringstillstånd (
PersistentAuthenticationStateProvider.cs).Ta bort registreringen av tjänsten från
Program-filen. Anropa AddAuthenticationStateDeserialization i stället tjänstsamlingen:- builder.Services.AddSingleton<AuthenticationStateProvider, PersistentAuthenticationStateProvider>(); + builder.Services.AddAuthenticationStateDeserialization();
Mer information finns i Nyheter i ASP.NET Core i .NET 9.
Renderingsattribut för direktuppspelning kräver inte längre parametern true
I .NET 8 krävde strömningsrendering att du skulle skicka true för parametern enabled :
@attribute [StreamRendering(true)]
I .NET 9 eller senare kan true valfritt tas bort, eftersom true nu är standard för parametern enabled.
@attribute [StreamRendering]
Brytande förändringar
Använd artiklarna i Icke-bakåtkompatibla ändringar i .NET för att hitta icke-bakåtkompatibla ändringar som kan gälla när du uppgraderar en app till en nyare version av .NET.
ASP.NET Core