Прочитать на английском

Поделиться через


Критические изменения в .NET 8

Если вы переносите приложение на .NET 8, критические изменения, перечисленные здесь, могут повлиять на вас. Изменения сгруппированы по технологическим областям, например, ASP.NET Core или Windows Forms.

Эта статья классифицирует каждое критическое изменение как несовместимое двоичное или исходное несовместимое или как изменение поведения:

  • Несовместимый двоичный файл . При запуске в новой среде выполнения или компонента существующие двоичные файлы могут столкнуться с критическим изменением в поведении, например сбоем загрузки или выполнения, а если да, требовать повторной компиляции.

  • Несовместимый источник. При повторной компиляции с помощью нового пакета SDK или компонента или целевой среды выполнения существующий исходный код может требовать изменения источника для успешной компиляции.

  • Изменение поведения. Существующий код и двоичные файлы могут вести себя по-разному во время выполнения. Если новое поведение нежелательно, необходимо обновить и перекомпилировать существующий код.

ASP.NET Core

Контейнеры

Заголовок Тип изменения
Пакет ca-certificates удален из образов Alpine Несовместимый двоичный файл
Образы контейнеров Debian обновлены до Debian 12 Двоичные несовместимые или поведенческие изменения
По умолчанию порт ASP.NET Core изменен на 8080 изменение поведения;
Пакет Kerberos удален из образов Alpine и Debian Несовместимый двоичный файл
Пакет libintl удален из образов Alpine изменение поведения;
Теги контейнеров с несколькими платформами доступны только для Linux изменение поведения;
Новый пользователь app в образах Linux изменение поведения;

Основные библиотеки .NET

Заголовок Тип изменения
Имя операции действия при значении NULL изменение поведения;
Поведение AnonymousPipeServerStream.Dispose изменение поведения;
Обзоление API с пользовательскими идентификаторами диагностики Несовместимый источник
Сопоставление обратной косой черты в путях к файлам Unix изменение поведения;
Методы Base64.DecodeFromUtf8 игнорируют пробелы изменение поведения;
Поддержка логического перечисления, поддерживаемого логическим типом перечисления изменение поведения;
Формат Complex.ToString изменен на <a; b> изменение поведения;
Перечисление текущего пути к каталогу диска изменение поведения;
Enumerable.Sum создает новый Метод OverflowException для некоторых входных данных изменение поведения;
FileStream записывает данные при закрытии канала изменение поведения;
FindSystemTimeZoneById не возвращает новый объект изменение поведения;
GC. GetGeneration может возвращать Int32.MaxValue изменение поведения;
Поведение GetFolderPath в Unix изменение поведения;
GetSystemVersion больше не возвращает ImageRuntimeVersion изменение поведения;
Заметки iTypeDescriptorContext NULL Несовместимый источник
Устаревшая консоль.ReadKey удалена изменение поведения;
Построитель методов создает параметры с параметром HasDefaultValue, равным false изменение поведения;
ProcessStartInfo.WindowStyle учитывается, если UseShellExecute имеет значение false изменение поведения;
RuntimeIdentifier возвращает платформу, для которой была создана среда выполнения изменение поведения;
Type.GetType Создает исключение для всех недопустимых типов элементов изменение поведения;

Шифрование

Заголовок Тип изменения Введенный
Размер тега проверки подлинности AesGcm в macOS изменение поведения; Предварительная версия 1
RSA. EncryptValue и RSA. Устаревший decryptValue Несовместимый источник Предварительная версия 1

Развертывание

Заголовок Тип изменения
Узел определяет ресурсы, относящиеся к RID Двоичные несовместимые или поведенческие изменения
Монитор .NET включает только бесконтрольные образы изменение поведения;
По умолчанию stripSymbols имеет значение true изменение поведения;

Entity Framework Core

Критические изменения в EF Core 8

Расширения

Глобализация

Interop

Сеть

Отражение

Заголовок Тип изменения
IntPtr больше не используется для типов указателей функций изменение поведения;

SDK

Заголовок Тип изменения
Выходные данные консоли CLI используют UTF-8 Изменение поведения/ несовместимость исходного и двоичного файла
Кодировка консоли не UTF-8 после завершения Изменение поведения или несовместимое двоичное
Контейнеры по умолчанию используют тег "latest" изменение поведения;
"dotnet pack" использует конфигурацию выпуска Изменение поведения или несовместимое источник
"dotnet publish" использует конфигурацию выпуска Изменение поведения или несовместимое источник
Повторяющиеся выходные данные для -getItem, -getProperty и -getTargetResult изменение поведения;
Неявное using для System.Net.Http больше не добавлено Изменение поведения или несовместимое источник
Пользовательские события сборки, производные от MSBuild, устарели изменение поведения;
MSBuild учитывает DOTNET_CLI_UI_LANGUAGE изменение поведения;
Приложения, зависящие от среды выполнения, не автономные Несовместимый источник или двоичный файл
Параметр --arch не означает автономное изменение поведения;
"dotnet restore" создает предупреждения об уязвимостях безопасности изменение поведения;
Пакет SDK использует меньший граф RID Изменение поведения или несовместимое источник
Настройка debugSymbols значение false отключает создание PDB изменение поведения;
Ссылка на источник, включенная в пакет SDK для .NET Несовместимый источник
Обрезка не может использоваться с .NET Standard или платформа .NET Framework изменение поведения;
Неподписанные пакеты, не установленные по умолчанию для средств .NET изменение поведения;
Пользовательский файл, импортированный во внешних сборках изменение поведения;
Требования к версии пакета SDK для .NET 8 Несовместимый источник

Сериализация

Windows Forms

См. также