Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article explique comment mettre à jour un ASP.NET Core dans .NET 8 vers ASP.NET Core dans .NET 9.
Prerequisites
Visual Studio 2022 avec la charge de travail Développement web et ASP.NET.
Mettre à jour la version du SDK .NET dans global.json
Si vous vous appuyez sur un global.json fichier pour cibler une version spécifique du Kit de développement logiciel (SDK) .NET, mettez à jour la version propriété vers la version du Kit de développement logiciel (SDK) .NET 9 installée. Par exemple:
{
"sdk": {
- "version": "8.0.100"
+ "version": "9.0.100"
}
}
Mettre à jour le framework cible
Mettez à jour le moniker de framework cible (TFM) du fichier projet vers net9.0 :
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
- <TargetFramework>net8.0</TargetFramework>
+ <TargetFramework>net9.0</TargetFramework>
</PropertyGroup>
</Project>
Mettre à jour les références de package
Dans le fichier projet, mettez à jour l’attribut Microsoft.AspNetCore.* de chaque référence de package Microsoft.EntityFrameworkCore.*, Microsoft.Extensions.*, System.Net.Http.Json et Version vers la version 9.0.0 ou ultérieure. Par exemple:
<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>
Remplacer UseStaticFiles par MapStaticAssets
Optimisez la gestion des fichiers statiques dans vos applications web en remplaçant UseStaticFilesMapStaticAssets par le fichier de l’application Program :
- app.UseStaticFiles();
+ app.MapStaticAssets();
Dans les applications MVC & Razor Pages, vous devez également chaîner un appel après .WithStaticAssetsMapRazorPages ou MapControllerRoute dans Program.cs. Pour obtenir un exemple, consultez les fichiers statiques dans ASP.NET Core.
ASP.NET Core effectue automatiquement des empreintes digitales et précompresse vos fichiers statiques au moment de la génération et de la publication, puis MapStaticAssets affiche les fichiers optimisés en tant que points de terminaison à l’aide du routage de point de terminaison avec les en-têtes de mise en cache appropriés.
Pour résoudre les noms de fichiers empreintes digitales de votre application :
Dans les Blazor applications, utilisez la ComponentBase.Assets propriété. Mettez à jour les références explicites aux ressources statiques dans les Razor fichiers de composants (
.razor) à utiliser@Assets["{ASSET PATH}"], où l’espace{ASSET PATH}réservé est le chemin d’accès à la ressource. Notez que cette opération ne doit PAS être effectuée pour les scripts d’infrastructure Blazor (blazor.*.js). Dans l’exemple suivant, Bootstrap, la feuille de style de l'application pour le modèle de projet Blazor (app.css), et la feuille de style d’isolation CSS (basée sur l’espace de noms d’une application ) sont liées dans un composant racine, généralement le composantBlazorSample(App).<link rel="stylesheet" href="@Assets["bootstrap/bootstrap.min.css"]" /> <link rel="stylesheet" href="@Assets["app.css"]" /> <link rel="stylesheet" href="@Assets["BlazorSample.styles.css"]" />Dans les applications MVC & Razor Pages, les tag helpers de script et de lien résolvent automatiquement les noms de fichiers empreintes digitales.
Pour résoudre les noms de fichiers empreintes digitales lors de l’importation de modules JavaScript, ajoutez un mappage d’importation généré :
Dans Blazor les applications, ajoutez le composant (ImportMap) au
<head>contenu du composant racine de l’application, généralement dans leAppcomposant (App.razor) :<ImportMap />Dans les applications MVC & Razor pages, ajoutez
<script type="importmap"></script>à la tête du fichier de disposition principal, qui est mis à jour par l’assistant d’importation de balise de carte.
Pour plus d’informations, consultez les ressources suivantes :
Blazor
Adopter la sérialisation simplifiée de l’état d’authentification pour Blazor Web Apps
Blazor Web Apppeut éventuellement adopter la sérialisation simplifiée de l’état d’authentification.
Dans le projet de serveur :
Supprimez le fournisseur d’état d’authentification persistant (
PersistingAuthenticationStateProvider.cs).Supprimez l’inscription du service du
Programfichier. Au lieu de cela, chaînez un appel à AddAuthenticationStateSerialization :AddRazorComponents- builder.Services.AddScoped<AuthenticationStateProvider, PersistingAuthenticationStateProvider>(); builder.Services.AddRazorComponents() .AddInteractiveServerComponents() .AddInteractiveWebAssemblyComponents() + .AddAuthenticationStateSerialization();
L’API sérialise uniquement le nom et les revendications de rôle côté serveur pour l’accès dans le navigateur. Pour inclure toutes les revendications, définissez SerializeAllClaims sur true:
.AddAuthenticationStateSerialization(options => options.SerializeAllClaims = true);
Dans le projet client (.Client) :
Supprimez le fournisseur d’état d’authentification permanente (
PersistentAuthenticationStateProvider.cs).Supprimez l’inscription du service du
Programfichier. Au lieu de cela, appelez AddAuthenticationStateDeserialization la collection de services :- builder.Services.AddSingleton<AuthenticationStateProvider, PersistentAuthenticationStateProvider>(); + builder.Services.AddAuthenticationStateDeserialization();
Pour plus d’informations, consultez Nouveautés de ASP.NET Core dans .NET 9.
L’attribut de rendu en streaming ne nécessite plus le paramètre true
Dans .NET 8, le rendu de streaming vous oblige à passer true pour le paramètre enabled :
@attribute [StreamRendering(true)]
Dans .NET 9 ou version ultérieure, true peut éventuellement être supprimé, car true est désormais la valeur par défaut du paramètre enabled :
@attribute [StreamRendering]
Modifications majeures
Utilisez les articles des modifications de rupture dans .NET pour rechercher les modifications de rupture qui peuvent s’appliquer lors de la mise à jour d'une application vers une version plus récente de .NET.