Migrace z ASP.NET Core v .NET 8 na ASP.NET Core v .NET 9
Tento článek vysvětluje, jak aktualizovat ASP.NET Core v .NET 8 na ASP.NET Core v .NET 9.
Požadavky
Visual Studio 2022 s pracovním prostředím ASP.NET a vývoje webu.
Aktualizace verze sady .NET SDK v global.json
Pokud se spoléháte na global.json
soubor určený pro konkrétní verzi sady .NET Core SDK, aktualizujte version
vlastnost na nainstalovanou verzi sady .NET 9.0 SDK. Příklad:
{
"sdk": {
- "version": "8.0.100"
+ "version": "9.0.100"
}
}
Aktualizace cílové architektury
Aktualizujte moniker cílového rozhraní (TFM) souboru projektu nanet9.0
:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
- <TargetFramework>net8.0</TargetFramework>
+ <TargetFramework>net9.0</TargetFramework>
</PropertyGroup>
</Project>
Aktualizace odkazů na balíčky
V souboru projektu aktualizujte každý Microsoft.AspNetCore.*
, Microsoft.EntityFrameworkCore.*
, Microsoft.Extensions.*
a System.Net.Http.Json
balíček odkaz na Version
atribut 9.0.0 nebo novější. Příklad:
<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>
Nahradit UseStaticFiles
čím MapStaticAssets
Optimalizujte zpracování statických souborů ve webových aplikacích nahrazením UseStaticFilesMapStaticAssets v souboru aplikace Program
:
- app.UseStaticFiles();
+ app.MapStaticAssets();
V aplikacích MVC & Razor Pages navíc potřebujete zřetězí volání za .WithStaticAssets
nebo MapRazorPages
MapControllerRoute
do Program.cs
. Příklad najdete ve statických souborech v ASP.NET Core.
ASP.NET Core automaticky otisky prstů a předem komprimuje statické soubory v době sestavení a publikování a pak MapStaticAssets zobrazí optimalizované soubory jako koncové body pomocí směrování koncového bodu s odpovídajícími hlavičkami ukládání do mezipaměti.
Překlad názvů souborů s otiskem prstu z aplikace:
V Blazor aplikacích použijte ComponentBase.Assets tuto vlastnost. Aktualizujte explicitní odkazy na statické prostředky v Razor souborech komponent (
.razor
) pro použití@Assets["{ASSET PATH}"]
, kde{ASSET PATH}
zástupný symbol je cesta k prostředku. Mějte na paměti, že by to nemělo být provedeno pro Blazor skripty architektury ().blazor.*.js
V následujícím příkladu jsou bootstrap, Blazor šablona stylů aplikace projektu (app.css
) a šablona stylů CSS (založená na oboru názvůBlazorSample
aplikace) propojeny v kořenové komponentě, obvykle komponentaApp
(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"]" />
V aplikacích MVC & Razor Pages automaticky přeloží pomocné rutiny značek skriptů a odkazů názvy souborů s otiskem prstu.
Pokud chcete při importu modulů JavaScriptu vyřešit názvy souborů s otiskem prstu, přidejte vygenerovanou mapu importu:
V Blazor aplikacích přidejte komponentu (ImportMap) do
<head>
obsahu kořenové komponenty aplikace, obvykle v dané komponentěApp
(App.razor
):<ImportMap />
V aplikacích MVC & Razor přidejte
<script type="importmap"></script>
do hlavy hlavního souboru rozložení, který aktualizuje pomocník pro import značek map.
Další informace naleznete v následujících zdrojích:
Blazor
Přijetí zjednodušené serializace stavu ověřování pro Blazor Web Apps
Blazor Web Apps může volitelně přijmout zjednodušenou serializaci stavu ověřování.
V projektu serveru:
Odeberte zprostředkovatele stavu trvalého ověřování (
PersistingAuthenticationStateProvider.cs
).Odeberte ze souboru registraci
Program
služby. Místo toho zřetězte volání na AddAuthenticationStateSerializationAddRazorComponents:- builder.Services.AddScoped<AuthenticationStateProvider, PersistingAuthenticationStateProvider>(); builder.Services.AddRazorComponents() .AddInteractiveServerComponents() .AddInteractiveWebAssemblyComponents() + .AddAuthenticationStateSerialization();
Rozhraní API serializuje pouze název na straně serveru a deklarace identity rolí pro přístup v prohlížeči. Pokud chcete zahrnout všechny deklarace identity, nastavte SerializeAllClaims na:true
.AddAuthenticationStateSerialization(options => options.SerializeAllClaims = true);
V klientském projektu (.Client
):
Odeberte zprostředkovatele stavu trvalého ověřování (
PersistentAuthenticationStateProvider.cs
).Odeberte ze souboru registraci
Program
služby. Místo toho volejte AddAuthenticationStateDeserialization kolekci služeb:- builder.Services.AddSingleton<AuthenticationStateProvider, PersistentAuthenticationStateProvider>(); + builder.Services.AddAuthenticationStateDeserialization();
Další informace najdete v tématu Co je nového v ASP.NET Core 9.0.
Atribut vykreslování streamování už nevyžaduje parametr true
.
V .NET 8 vykreslování streamování nutné předat true
parametru enabled
:
@attribute [StreamRendering(true)]
V rozhraní .NET 9 nebo novějších je možné true
volitelně odebrat, protože true
je teď výchozím nastavením parametru enabled
:
@attribute [StreamRendering]