Migrowanie z platformy ASP.NET Core na platformie .NET 8 do platformy ASP.NET Core na platformie .NET 9
W tym artykule wyjaśniono, jak zaktualizować platformę ASP.NET Core na platformie .NET 8 do ASP.NET Core na platformie .NET 9.
Wymagania wstępne
Program Visual Studio 2022 (wersja zapoznawcza ) z obciążeniem tworzenia aplikacji internetowych i ASP.NET.
Aktualizowanie wersji zestawu .NET SDK w programie global.json
Jeśli korzystasz z global.json
pliku przeznaczonego dla określonej wersji zestawu .NET Core SDK, zaktualizuj version
właściwość do zainstalowanej wersji zestawu .NET 9.0 SDK. Na przykład:
{
"sdk": {
- "version": "8.0.100"
+ "version": "9.0.100"
}
}
Aktualizowanie platformy docelowej
Zaktualizuj plik projektu Target Framework Moniker (TFM) na net9.0
:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
- <TargetFramework>net8.0</TargetFramework>
+ <TargetFramework>net9.0</TargetFramework>
</PropertyGroup>
</Project>
Aktualizowanie odwołań do pakietów
W pliku projektu zaktualizuj atrybut odwołania Version
do pakietu Microsoft.AspNetCore.*
, Microsoft.EntityFrameworkCore.*
, Microsoft.Extensions.*
i System.Net.Http.Json
do wersji 9.0.0 lub nowszej. Na przykład:
<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>
Zastąp ciąg UseStaticFiles
ciągiem MapStaticAssets
Zoptymalizuj obsługę plików statycznych w aplikacjach internetowych, zastępując element UseStaticFiles w MapStaticAssets pliku aplikacji Program
:
- app.UseStaticFiles();
+ app.MapStaticAssets();
W aplikacjach MVC & Razor Pages należy dodatkowo połączyć wywołanie z elementem .WithStaticAssets
po MapRazorPages
lub MapControllerRoute
w elem.Program.cs
Aby zapoznać się z przykładem, zobacz pliki statyczne w programie ASP.NET Core.
ASP.NET Core automatycznie odciski palców i prekompresuje pliki statyczne w czasie kompilacji i publikowania, a następnie MapStaticAssets wyświetla zoptymalizowane pliki jako punkty końcowe przy użyciu routingu punktu końcowego z odpowiednimi nagłówkami buforowania.
Aby rozpoznać nazwy plików odcisków palców z aplikacji:
W Blazor aplikacjach użyj ComponentBase.Assets właściwości . Zaktualizuj jawne odwołania do zasobów statycznych w Razor plikach składników (
.razor
), aby użyć@Assets["{ASSET PATH}"]
elementu , gdzie{ASSET PATH}
symbol zastępczy jest ścieżką do zasobu. Należy pamiętać, że nie należy tego robić dla Blazor skryptów platformy (blazor.*.js
). W poniższym przykładzie bootstrap, Blazor arkusz stylów aplikacji szablonu projektu (app.css
) i arkusz stylów izolacji CSS (na podstawie przestrzeni nazwBlazorSample
aplikacji ) są połączone w składniku głównym, zazwyczajApp
składnik (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"]" />
W aplikacjach MVC & Razor Pages pomocnicy skryptu i tagów linków automatycznie rozpoznają nazwy plików odcisków palców.
Aby rozpoznać nazwy plików odcisków palców podczas importowania modułów Języka JavaScript, dodaj wygenerowaną mapę importu:
W Blazor aplikacjach dodaj składnik (ImportMap) do
<head>
zawartości składnika głównego aplikacji, zazwyczaj w składnikuApp
(App.razor
):<ImportMap />
W aplikacjach MVC i Razor stron dodaj
<script type="importmap"></script>
do nagłówka głównego pliku układu, który jest aktualizowany przez Pomocnik tagu mapy importu.
Aby uzyskać więcej informacji, zobacz następujące zasoby:
Blazor
Wdrażanie uproszczonej serializacji stanu uwierzytelniania dla s Blazor Web App
Blazor Web AppS może opcjonalnie przyjąć uproszczoną serializacji stanu uwierzytelniania.
W projekcie serwera:
Usuń utrwalającego dostawcę stanu uwierzytelniania (
PersistingAuthenticationStateProvider.cs
).Usuń rejestrację usługi z
Program
pliku. Zamiast tego utwórz łańcuch wywołań do polecenia w lokalizacji AddAuthenticationStateSerialization :AddRazorComponents- builder.Services.AddScoped<AuthenticationStateProvider, PersistingAuthenticationStateProvider>(); builder.Services.AddRazorComponents() .AddInteractiveServerComponents() .AddInteractiveWebAssemblyComponents() + .AddAuthenticationStateSerialization();
Interfejs API serializuje tylko nazwę po stronie serwera i oświadczenia roli w celu uzyskania dostępu w przeglądarce. Aby uwzględnić wszystkie oświadczenia, ustaw wartość SerializeAllClaims :true
.AddAuthenticationStateSerialization(options => options.SerializeAllClaims = true);
W projekcie klienta (.Client
):
Usuń dostawcę stanu uwierzytelniania trwałego (
PersistentAuthenticationStateProvider.cs
).Usuń rejestrację usługi z
Program
pliku. Zamiast tego wywołaj AddAuthenticationStateDeserialization kolekcję usług:- builder.Services.AddSingleton<AuthenticationStateProvider, PersistentAuthenticationStateProvider>(); + builder.Services.AddAuthenticationStateDeserialization();
Aby uzyskać więcej informacji, zobacz Co nowego w programie ASP.NET Core 9.0.