Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel wird erläutert, wie Sie ein ASP.NET Core in .NET 8 auf ASP.NET Core in .NET 9 aktualisieren.
Voraussetzungen
Visual Studio 2022 mit der Arbeitslast für ASP.NET und Webentwicklung
Aktualisieren Sie die .NET SDK-Version in global.json
Wenn Sie auf eine global.json Datei angewiesen sind, um eine bestimmte .NET SDK-Version zu verwenden, aktualisieren Sie die version Eigenschaft auf die .NET 9 SDK-Version, die installiert ist. Beispiel:
{
"sdk": {
- "version": "8.0.100"
+ "version": "9.0.100"
}
}
Aktualisieren des Zielframeworks
Aktualisieren Sie das Target Framework Moniker (TFM) der Projektdatei auf net9.0:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
- <TargetFramework>net8.0</TargetFramework>
+ <TargetFramework>net9.0</TargetFramework>
</PropertyGroup>
</Project>
Aktualisieren von Paketverweisen
Aktualisieren Sie in der Projektdatei das Microsoft.AspNetCore.*-Attribut jedes Paketverweises vom Typ Microsoft.EntityFrameworkCore.*, Microsoft.Extensions.*, System.Net.Http.Json und Version auf 9.0.0 oder höher. Beispiel:
<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>
Ersetzen Sie UseStaticFiles durch MapStaticAssets.
Optimieren Sie die Verarbeitung statischer Dateien in Ihren Web-Apps, indem Sie UseStaticFiles durch MapStaticAssets in der Datei Program der App ersetzen:
- app.UseStaticFiles();
+ app.MapStaticAssets();
In MVC & Razor Pages-Apps müssen Sie zusätzlich nach .WithStaticAssets oder MapRazorPages in MapControllerRoute einen Aufruf von Program.cs anhängen. Ein Beispiel finden Sie in den Serve Static Files in ASP.NET Core Apps.
ASP.NET Core versieht Ihre statischen Dateien beim Erstellen und Veröffentlichen automatisch mit Fingerabdrücken und führt eine Vorkomprimierung durch. Danach stellt MapStaticAssets die optimierten Dateien mithilfe von Endpunktrouting und geeigneten Cachingheadern als Endpunkte bereit.
So lösen Sie die fingerabdruckierten Dateinamen aus Ihrer App auf:
Verwenden Sie in Blazor Apps die ComponentBase.Assets Eigenschaft. Aktualisieren Sie explizite Verweise auf statische Assets in Razor-Komponentendateien (
.razor), sodass@Assets["{ASSET PATH}"]verwendet wird, wobei der Platzhalter{ASSET PATH}für den Pfad zum Asset steht. Beachten Sie, dass dies nicht für die Blazor Frameworkskripts (blazor.*.js) erfolgen sollte. Im folgenden Beispiel werden Bootstrap, das Stylesheet der Projektvorlagen-App (Blazor) und dasapp.css(basierend auf dem Namespace einer App) in einer Stammkomponente verknüpft, in der Regel dieBlazorSampleKomponente (App):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"]" />In MVC &Razor Pages-Apps lösen die Skript- und Link-Tag-Hilfen automatisch die mit Fingerabdruck versehenen Dateinamen auf.
Um die fingerabdruckierten Dateinamen beim Importieren von JavaScript-Modulen aufzulösen, fügen Sie eine generierte Importzuordnung hinzu:
Blazor Fügen Sie in Apps die (ImportMap) Komponente zum
<head>Inhalt der Stammkomponente der App hinzu, in der Regel in derAppKomponente (App.razor):<ImportMap />Fügen Sie in MVC & Razor Pages-Apps
<script type="importmap"></script>im Kopfbereich der Hauptlayoutdatei hinzu, die von der Importzuordnungs-Tag-Hilfe aktualisiert wird.
Weitere Informationen finden Sie in den folgenden Ressourcen:
Blazor
Vereinfachte Serialisierung des Authentifizierungszustands für Blazor Web Apps einführen
Blazor Web Apps können optional eine vereinfachte Serialisierung des Authentifizierungsstatus nutzen.
Im Serverprojekt:
Entfernen Sie den Persistenting Authentication State Provider (
PersistingAuthenticationStateProvider.cs).Entfernen Sie die Dienstregistrierung aus der
ProgramDatei. Verketten Sie stattdessen einen Aufruf von AddAuthenticationStateSerialization für AddRazorComponents:- builder.Services.AddScoped<AuthenticationStateProvider, PersistingAuthenticationStateProvider>(); builder.Services.AddRazorComponents() .AddInteractiveServerComponents() .AddInteractiveWebAssemblyComponents() + .AddAuthenticationStateSerialization();
Die API serialisiert nur die serverseitigen Namens- und Rollenansprüche für den Zugriff im Browser. Um alle Ansprüche einzubeziehen, setzen Sie SerializeAllClaims auf true:
.AddAuthenticationStateSerialization(options => options.SerializeAllClaims = true);
Im Clientprojekt (.Client):
Entfernen Sie den Anbieter für beständigen Authentifizierungsstatus (
PersistentAuthenticationStateProvider.cs).Entfernen Sie die Dienstregistrierung aus der
ProgramDatei. Rufen Sie stattdessen AddAuthenticationStateDeserialization für die Dienstesammlung auf:- builder.Services.AddSingleton<AuthenticationStateProvider, PersistentAuthenticationStateProvider>(); + builder.Services.AddAuthenticationStateDeserialization();
Weitere Informationen finden Sie unter Neuigkeiten in ASP.NET Core in .NET 9.
Für das Streamingrendering-Attribut ist der true Parameter nicht mehr erforderlich.
In .NET 8 mussten Sie beim Streamingrenderingtrue für den Parameterenabled übergeben:
@attribute [StreamRendering(true)]
In .NET 9 oder höher kann true optional entfernt werden, da true jetzt die Standardeinstellung für den Parameter enabled ist.
@attribute [StreamRendering]
Bahnbrechende Änderungen
Verwenden Sie die Artikel in "Breaking changes in .NET ", um nach wichtigen Änderungen zu suchen, die beim Aktualisieren einer App auf eine neuere Version von .NET gelten können.