Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье объясняется, как обновить ASP.NET Core в .NET 9 до ASP.NET Core в .NET 10.
Предпосылки
Visual Studio 2022 с рабочей нагрузкой ASP.NET и разработка веб-приложений.
Обновление версии пакета SDK для .NET в global.json
Если вы полагаетесь на файл global.json для нацеливания на конкретную версию пакета SDK для .NET, обновите свойство version до установленной версии пакета SDK для .NET 10. Рассмотрим пример.
{
"sdk": {
- "version": "9.0.304"
+ "version": "10.0.100"
}
}
Обновление целевой платформы
Обновите идентификатор целевой платформы (TFM) в файле проекта на:net10.0
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
- <TargetFramework>net9.0</TargetFramework>
+ <TargetFramework>net10.0</TargetFramework>
</PropertyGroup>
</Project>
Обновление ссылок на пакеты
В файле проекта обновите атрибут Microsoft.AspNetCore.* каждой ссылки на пакет Microsoft.EntityFrameworkCore.*, Microsoft.Extensions.*, System.Net.Http.Json, и Version до версии 10.0.0 или более поздней. Рассмотрим пример.
<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
Примечания к выпуску Blazor
Сведения о новых возможностях см. в статье "Новые возможности" в ASP.NET Core в .NET 10.
Настройте среду с помощью свойства Blazor WebAssembly MSBuild
Этот раздел относится только к автономным приложениям Blazor WebAssembly .
Заголовок Blazor-Environment и Properties/launchSettings.json файл (ASPNETCORE_ENVIRONMENT переменная среды) больше не используются для управления средой в автономных Blazor WebAssembly приложениях.
Задайте среду со свойством <WasmApplicationEnvironmentName> в файле проекта приложения (.csproj).
В следующем примере среда приложения устанавливается: Staging.
<WasmApplicationEnvironmentName>Staging</WasmApplicationEnvironmentName>
Среды по умолчанию:
-
Developmentдля сборки. -
Productionдля публикации.
Файл конфигурации загрузки встроен
BlazorКонфигурация загрузки, которая до выпуска .NET 10 существовала в файле с именем blazor.boot.json, была встроена в скрипт dotnet.js. Это влияет только на разработчиков, которые взаимодействуют непосредственно с файлом blazor.boot.json , например, когда разработчики:
- Проверка целостности файлов для опубликованных ресурсов с помощью скрипта PowerShell для устранения неполадок, связанных с нарушением целостности, согласно рекомендациям по сбоям кэширования и проверок целостности в ASP.NET Core.
- Изменение расширения имени файла DLL, если не используется формат файла Webcil по умолчанию, согласно руководству в Хостинг и развёртывание ASP.NET Core Blazor WebAssembly.
В настоящее время нет документированных стратегий замены для предыдущих подходов. Если вам требуется любая из предыдущих стратегий, откройте новую проблему документации, описывающую сценарий, используя ссылку "Открыть ссылку на проблему документации " в нижней части любой статьи.
Декларативная модель для консервирования состояния компонентов и сервисов
В предыдущих Blazor выпусках сохранение состояния компонента во время преререндеринга с использованием PersistentComponentState службы требовало значительного объема кода. Начиная с .NET 10, можно декларативно указать, какое состояние сохранять для компонентов и служб с помощью атрибута [PersistentState]. Дополнительные сведения см. в статье "Новые возможности" ASP.NET Core в .NET 10.
Пользовательский Blazor кэш и BlazorCacheBootResources свойство MSBuild удалены
Теперь, когда все Blazor клиентские файлы отпечатываются и кэшируются браузером, Blazorнастраиваемый механизм кэширования и BlazorCacheBootResources свойство MSBuild больше не доступно. Если файл проекта на стороне клиента содержит свойство MSBuild, удалите это свойство, так как оно больше не имеет никакого эффекта:
- <BlazorCacheBootResources>...</BlazorCacheBootResources>
Дополнительные сведения см. в разделе кэширование ASP.NET Core Blazor WebAssembly и ошибки проверки целостности.
Внедрите аутентификацию пользователей с помощью ключей доступа в существующем Blazor Web App
Инструкции см. в разделе "Реализация ключей доступа" в ASP.NET CoreBlazor Web App.
Если ошибки навигации отключены в Blazor Web App с личными учетными записями
Этот раздел применяется к Blazor Web App объектам, которые устанавливают свойство <BlazorDisableThrowNavigationException> MSBuild в true, чтобы избежать возникновения исключения навигации во время статической серверной отрисовки (SSR).
Метод IdentityRedirectManager бросил InvalidOperationException в метод RedirectTo, чтобы убедиться, что метод не был вызван из интерактивного режима отрисовки, и все методы перенаправления были помечены атрибутом [DoesNotReturn]. Шаблон проекта .NET 10 или более поздней версии Blazor Web App задает <BlazorDisableThrowNavigationException> свойство true MSBuild в файле проекта приложения, чтобы избежать возникновения исключения во время статического SSR. Если приложение, основанное на шаблоне проекта из предыдущей версии .NET, обновляется до .NET 10 или более поздней версии и включает <BlazorDisableThrowNavigationException> свойство trueMSBuild, внесите следующие изменения. Дополнительные сведения см. в статье "Новые возможности" ASP.NET Core в .NET 10.
В Components/Account/IdentityRedirectManager.cs:
Удалите InvalidOperationException из метода
RedirectTo- throw new InvalidOperationException( - $"{nameof(IdentityRedirectManager)} can only be used during static rendering.");Удалите пять экземпляров атрибута
[DoesNotReturn]из файла:- [DoesNotReturn]
Кардинальные изменения
Используйте статьи в статье Критические изменения в .NET, чтобы найти критические изменения , которые могут применяться при обновлении приложения до более новой версии .NET.
ASP.NET Core