Condividi tramite


Eseguire la migrazione da ASP.NET Core in .NET 9 a ASP.NET Core in .NET 10

Questo articolo illustra come aggiornare un ASP.NET Core in .NET 9 a ASP.NET Core in .NET 10.

Prerequisiti

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 10 SDK installata. Per esempio:

{
  "sdk": {
-    "version": "9.0.304"
+    "version": "10.0.100"
  }
}

Aggiornare il framework di destinazione

Aggiornare il moniker del framework di destinazione del file di progetto (TFM) a net10.0:

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
-    <TargetFramework>net9.0</TargetFramework>
+    <TargetFramework>net10.0</TargetFramework>
  </PropertyGroup>

</Project>

Aggiornare i riferimenti del pacchetto

Nel file di progetto aggiornare ogni Microsoft.AspNetCore.*attributo di riferimento al pacchetto Microsoft.EntityFrameworkCore.* , Microsoft.Extensions.*System.Net.Http.Json, e Version alla versione 10.0.0 o successiva. Per esempio:

<ItemGroup>
-   <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" />
+   <PackageReference Include="Microsoft.AspNetCore.JsonPatch" Version="10.0.0" />
+   <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="10.0.0" />
+   <PackageReference Include="Microsoft.Extensions.Caching.Abstractions" Version="10.0.0" />
+   <PackageReference Include="System.Net.Http.Json" Version="10.0.0" />
</ItemGroup>

Blazor

Note sulla versione di Blazor

Per una nuova copertura delle funzionalità, vedere Novità di ASP.NET Core in .NET 10.

Impostare l'ambiente Blazor WebAssembly con la proprietà MSBuild WasmApplicationEnvironmentName

Questa sezione si applica solo alle app autonome Blazor WebAssembly .

Il Properties/launchSettings.json file non viene più usato per controllare l'ambiente nelle app autonome Blazor WebAssembly .

Impostare l'ambiente con la <WasmApplicationEnvironmentName> proprietà nel file di progetto dell'app (.csproj).

L'esempio seguente imposta l'ambiente dell'app su Staging:

<WasmApplicationEnvironmentName>Staging</WasmApplicationEnvironmentName>

Gli ambienti predefiniti sono:

  • Development per la compilazione.
  • Production per la pubblicazione.

File di configurazione di avvio integrato

BlazorLa configurazione di avvio, che prima del rilascio di .NET 10 esisteva in un file denominato blazor.boot.json, è stata inserita nello dotnet.js script. Ciò influisce solo sugli sviluppatori che interagiscono direttamente con il blazor.boot.json file, ad esempio quando gli sviluppatori sono:

Attualmente non esiste una strategia di sostituzione documentata per gli approcci precedenti. Se è necessaria una delle strategie precedenti, aprire un nuovo problema di documentazione che descrive lo scenario usando il collegamento Apri un problema di documentazione nella parte inferiore di uno di questi articoli.

Modello dichiarativo per la persistenza dello stato dei componenti e dei servizi

Nelle versioni precedenti Blazor, il mantenimento dello stato del componente durante il prerendering usando il servizio PersistentComponentState richiedeva una notevole quantità di codice. A partire da .NET 10, è possibile specificare in modo dichiarativo lo stato da rendere persistente dai componenti e dai servizi usando l'attributo [PersistentState] . Per altre informazioni, vedere Novità di ASP.NET Core in .NET 10.

Cache personalizzata Blazor e BlazorCacheBootResources proprietà MSBuild rimosse

Ora che tutti i Blazor file sul lato client hanno un'impronta digitale e sono memorizzati nella cache dal browser, Blazor il meccanismo di memorizzazione nella cache personalizzata e la BlazorCacheBootResources proprietà MSBuild non sono più disponibili. Se il file di progetto sul lato client contiene la proprietà MSBuild, rimuovere la proprietà , perché non ha più alcun effetto:

- <BlazorCacheBootResources>...</BlazorCacheBootResources>

Per ulteriori informazioni, vedere ASP.NET Core: errori di memorizzazione nella cache e controllo dell'integritàBlazor WebAssembly.

Adottare l'autenticazione utente passkey in un'istanza esistente Blazor Web App

Per indicazioni, vedere Implementare passkey in ASP.NET Core Blazor Web Apps.

Quando gli errori di spostamento sono disabilitati in un Blazor Web App oggetto con singoli account

Questa sezione si applica a Blazor Web Apps che imposta la <BlazorDisableThrowNavigationException> proprietà MSBuild su true per evitare di generare un'eccezione di navigazione durante il rendering statico lato server (SSR statico).

È IdentityRedirectManager stato generato un oggetto InvalidOperationException nel RedirectTo metodo per assicurarsi che il metodo non sia stato chiamato da una modalità di rendering interattiva e che tutti i metodi di reindirizzamento siano stati contrassegnati con l'attributo[DoesNotReturn] . Il modello di progetto .NET 10 o versione successiva Blazor Web App imposta la <BlazorDisableThrowNavigationException> proprietà MSBuild su true nel file di progetto dell'app per evitare di generare l'eccezione durante il ssr statico. Se un'app basata sul modello di progetto da una versione precedente di .NET viene aggiornata a .NET 10 o versione successiva e include la <BlazorDisableThrowNavigationException> proprietà MSBuild impostata su true, apportare le modifiche seguenti. Per altre informazioni, vedere Novità di ASP.NET Core in .NET 10.

In Components/Account/IdentityRedirectManager.cs:

  • Rimuovere dal InvalidOperationExceptionRedirectTo metodo :

    - throw new InvalidOperationException(
    -     $"{nameof(IdentityRedirectManager)} can only be used during static rendering.");
    
  • Rimuovere cinque istanze dell'attributo [DoesNotReturn] dal file:

    - [DoesNotReturn]
    

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.