Критические изменения в .NET 8
Если вы переносите приложение на .NET 8, критические изменения, перечисленные здесь, могут повлиять на вас. Изменения сгруппированы по технологическим областям, например, ASP.NET Core или Windows Forms.
Эта статья классифицирует каждое критическое изменение как несовместимое двоичное или исходное несовместимое или как изменение поведения:
Несовместимый двоичный файл . При запуске в новой среде выполнения или компонента существующие двоичные файлы могут столкнуться с критическим изменением в поведении, например сбоем загрузки или выполнения, а если да, требовать повторной компиляции.
Несовместимый источник. При повторной компиляции с помощью нового пакета SDK или компонента или целевой среды выполнения существующий исходный код может требовать изменения источника для успешной компиляции.
Изменение поведения. Существующий код и двоичные файлы могут вести себя по-разному во время выполнения. Если новое поведение нежелательно, необходимо обновить и перекомпилировать существующий код.
ASP.NET Core
Заголовок | Тип изменения |
---|---|
ConcurrencyLimiterMiddleware устарел | Несовместимый источник |
Пользовательские преобразователи для сериализации удалены | изменение поведения; |
ISystemClock устарел | Несовместимый источник |
Минимальные API: параметры IFormFile требуют проверки защиты от подделки | изменение поведения; |
Для по промежуточного слоя с ограничением скорости требуется AddRateLimiter | изменение поведения; |
События маркера безопасности возвращают JsonWebToken | изменение поведения; |
По умолчанию TrimMode заполнено для проектов веб-пакета SDK | Несовместимый источник |
Контейнеры
Заголовок | Тип изменения |
---|---|
Пакет ca-certificates удален из образов Alpine | Несовместимый двоичный файл |
Образы контейнеров Debian обновлены до Debian 12 | Двоичные несовместимые или поведенческие изменения |
По умолчанию порт ASP.NET Core изменен на 8080 | изменение поведения; |
Пакет Kerberos удален из образов Alpine и Debian | Несовместимый двоичный файл |
Пакет libintl удален из образов Alpine | изменение поведения; |
Теги контейнеров с несколькими платформами доступны только для Linux | изменение поведения; |
Новый пользователь app в образах Linux | изменение поведения; |
Основные библиотеки .NET
Шифрование
Заголовок | Тип изменения | Введенный |
---|---|---|
Размер тега проверки подлинности AesGcm в macOS | изменение поведения; | Предварительная версия 1 |
RSA. EncryptValue и RSA. Устаревший decryptValue | Несовместимый источник | Предварительная версия 1 |
Развертывание
Заголовок | Тип изменения |
---|---|
Узел определяет ресурсы, относящиеся к RID | Двоичные несовместимые или поведенческие изменения |
Монитор .NET включает только бесконтрольные образы | изменение поведения; |
По умолчанию stripSymbols имеет значение true | изменение поведения; |
Entity Framework Core
Критические изменения в EF Core 8
Расширения
Заголовок | Тип изменения |
---|---|
АктивацияUtilities.CreateInstance работает согласованно | изменение поведения; |
Для активацииutilities.CreateInstance требуется поставщик, отличный от NULL | изменение поведения; |
ConfigurationBinder вызывает несовпадение значения | изменение поведения; |
Пакет ConfigurationManager больше не ссылается на System.Security.Permissions | Несовместимый источник |
Пакет DirectoryServices больше не ссылается на System.Security.Permissions | Несовместимый источник |
Пустые ключи, добавленные в словарь по привязке конфигурации | изменение поведения; |
HostApplicationBuilderSettings.Args, уважаемый ctor HostApplicationBuilder | изменение поведения; |
ManagementDateTimeConverter.ToDateTime возвращает локальное время | изменение поведения; |
Изменение форматирования System.Format.Cbor DateTimeOffset | изменение поведения; |
Глобализация
Заголовок | Тип изменения |
---|---|
Преобразователи даты и времени учитывают аргумент языка и региональных параметров | изменение поведения; |
Значение по умолчанию TwoDigitYearMax — 2049 | изменение поведения; |
Interop
Заголовок | Тип изменения |
---|---|
CreateObjectFlags.Unwrap только распаковывается в целевом экземпляре | изменение поведения; |
Пользовательские маршаллеры требуют дополнительных элементов | Несовместимый источник |
API IDispatchImplAttribute удален | Несовместимый двоичный файл |
Неявный открытый конструктор по умолчанию JSFunctionBinding удален | Несовместимый двоичный файл |
Типы SafeHandle должны иметь открытый конструктор | Несовместимый источник |
Сеть
Заголовок | Тип изменения |
---|---|
SendFile создает исключение NotSupportedException для сокетов без подключения | изменение поведения; |
Данные пользователя в mailto: URI сравниваются |
изменение поведения; |
Отражение
Заголовок | Тип изменения |
---|---|
IntPtr больше не используется для типов указателей функций | изменение поведения; |
SDK
Сериализация
Заголовок | Тип изменения |
---|---|
BinaryFormatter отключен для большинства проектов | изменение поведения; |
Сбой сериализации на основе отражения в проектах PublishedTrimmed | изменение поведения; |
Десериализатор на основе отражения разрешает метаданные с нетерпением | изменение поведения; |
Windows Forms
Заголовок | Тип изменения |
---|---|
Изменения макета привязки | изменение поведения; |
Сертификаты, проверенные перед загрузкой удаленных образов в PictureBox | изменение поведения; |
DateTimePicker.Text — пустая строка | изменение поведения; |
Свойство DefaultValueAttribute удалено из некоторых свойств | изменение поведения; |
ИсключениеCollection ctor вызывает АргументException | изменение поведения; |
Масштаб форм в соответствии с AutoScaleMode | изменение поведения; |
ImageList.ColorDepth по умолчанию — Depth32Bit | изменение поведения; |
System.Windows.Extensions не ссылается на System.Drawing.Common | Несовместимый источник |
TableLayoutStyleCollection вызывает АргументException | изменение поведения; |
Минимальный и максимальный размер форм верхнего уровня до DPI | изменение поведения; |
WFDEV002 obsoletion теперь является ошибкой | Несовместимый источник |