Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo illustra come aggiornare un ASP.NET Core in .NET 8 a ASP.NET Core in .NET 9.
Prerequisiti
Visual Studio 2022 con il carico di lavoro ASP.NET e sviluppo Web .
Aggiornare la versione di .NET SDK in global.json
Se si fa affidamento su un global.json file per specificare una versione specifica di .NET SDK, aggiornare la version proprietà alla versione di .NET 9 SDK installata. Per esempio:
{
"sdk": {
- "version": "8.0.100"
+ "version": "9.0.100"
}
}
Aggiornare il framework di destinazione
Aggiornare il moniker del framework di destinazione del file di progetto (TFM) a net9.0:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
- <TargetFramework>net8.0</TargetFramework>
+ <TargetFramework>net9.0</TargetFramework>
</PropertyGroup>
</Project>
Aggiornare i riferimenti del pacchetto
Nel file di progetto, aggiorna l'attributo Microsoft.AspNetCore.* di ogni riferimento al pacchetto Microsoft.EntityFrameworkCore.*, Microsoft.Extensions.*, System.Net.Http.Json e Version alla versione 9.0.0 o successiva. Per esempio:
<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>
Sostituire UseStaticFiles con MapStaticAssets
Ottimizzare la gestione dei file statici nelle app Web sostituendo UseStaticFiles con MapStaticAssets nel file dell'app Program :
- app.UseStaticFiles();
+ app.MapStaticAssets();
Nelle app MVC & Razor Pages è anche necessario concatenare una chiamata a .WithStaticAssets dopo MapRazorPages o MapControllerRoute in Program.cs. Per un esempio, vedere Distribuire file statici nelle app ASP.NET Core.
ASP.NET Core genera automaticamente gli hash e precomprime i file statici durante la compilazione e la pubblicazione, quindi MapStaticAssets espone i file ottimizzati come endpoint tramite il routing degli endpoint con le intestazioni di cache appropriate.
Per risolvere i nomi di file con impronta digitale dall'app:
Nelle Blazor app usare la ComponentBase.Assets proprietà . Aggiornare i riferimenti espliciti agli asset statici nei file del componente Razor (
.razor) per utilizzare@Assets["{ASSET PATH}"], dove il segnaposto{ASSET PATH}è il percorso dell'asset. Si noti che questa operazione NON deve essere eseguita per gli script del Blazor framework (blazor.*.js). Nell'esempio seguente Bootstrap, il foglio di stile dell'app del modello di progetto (Blazor) e il foglio di stile per l'isolamento CSS (app.css) (basato sul namespace dell'app ) sono collegati a un componente radice, solitamente componenteBlazorSample(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"]" />Nelle app MVC & Razor Pages, gli helper tag di script e collegamento risolveranno automaticamente i nomi dei file con impronta digitale.
Per risolvere i nomi di file con impronta digitale durante l'importazione di moduli JavaScript, aggiungere una mappa di importazione generata:
Nelle app Blazor, aggiungere il componente (ImportMap) nel contenuto
<head>del componente radice dell'app, in genere nel componenteApp(App.razor):<ImportMap />Nelle app MVC e Razor Pages, aggiungere
<script type="importmap"></script>nell'intestazione del file di layout principale, che viene aggiornato dal Tag Helper Import Map.
Per altre informazioni, vedere le risorse seguenti:
Blazor
Adottare la serializzazione semplificata dello stato di autenticazione per Blazor Web Apps
Blazor Web Apps può facoltativamente adottare la serializzazione semplificata dello stato di autenticazione.
Nel progetto server:
Rimuovere il provider di stato di autenticazione persistente (
PersistingAuthenticationStateProvider.cs).Rimuovere la registrazione del
Programservizio dal file. Concatena invece una chiamata a AddAuthenticationStateSerialization su AddRazorComponents:- builder.Services.AddScoped<AuthenticationStateProvider, PersistingAuthenticationStateProvider>(); builder.Services.AddRazorComponents() .AddInteractiveServerComponents() .AddInteractiveWebAssemblyComponents() + .AddAuthenticationStateSerialization();
L'API serializza solo le dichiarazioni di nome e di ruolo del lato server per l'accesso nel browser. Per includere tutte le notifiche, impostare SerializeAllClaims su true:
.AddAuthenticationStateSerialization(options => options.SerializeAllClaims = true);
Nel progetto client (.Client):
Rimuovere il provider di stato di autenticazione persistente (
PersistentAuthenticationStateProvider.cs).Rimuovere la registrazione del
Programservizio dal file. Chiamare invece AddAuthenticationStateDeserialization sulla raccolta servizi:- builder.Services.AddSingleton<AuthenticationStateProvider, PersistentAuthenticationStateProvider>(); + builder.Services.AddAuthenticationStateDeserialization();
Per altre informazioni, vedere Novità di ASP.NET Core in .NET 9.
L'attributo di rendering di streaming non richiede più il parametro true
In .NET 8, il rendering in streaming richiedeva di passare true per il parametro enabled:
@attribute [StreamRendering(true)]
In .NET 9 o versione successiva è possibile rimuovere true facoltativamente, perché true è ora l'impostazione predefinita per il parametro enabled:
@attribute [StreamRendering]
Modifiche radicali
Usare gli articoli in Modifiche di rilievo in .NET per trovare modifiche di rilievo che potrebbero essere applicate durante l'aggiornamento di un'app a una versione più recente di .NET.