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

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

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

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

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

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

Замечание

Эта статья находится в процессе написания. Это не полный список критических изменений в .NET 11.

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

Название Тип изменения
Добавлена проверка CRC32 при чтении записей ZIP-архива Изменение поведения
Методы DateOnly и TimeOnly TryParse выдают исключение для недопустимых входных данных Изменение поведения
DeflateStream и GZipStream записывают заголовки и концевые элементы для пустого содержимого Изменение поведения
Environment.TickCount приведён в соответствие с поведением тайм-аутов Windows Изменение поведения
Обновление максимальной емкости MemoryStream и изменение поведения исключений Изменение поведения
NamedPipeServerStream с PipeOptions.CurrentUserOnly ужесточает права доступа файла сокета UNIX Изменение поведения
Nullable.GetUnderlyingType вызывает вызовы для подклассов пользовательского типа Изменение поведения
Устаревшие API с нестандартными диагностическими идентификаторами (.NET 11) Несовместимый источник
Интерфейсы чтения TAR проверяют контрольные суммы заголовков в процессе чтения Изменение поведения
TarWriter использует записи HardLink для жестко связанных файлов Изменение поведения
ZipArchive.CreateAsync с нетерпением загружает записи ZIP-архива Изменение поведения

Cryptography

Название Тип изменения
DSA удалена из macOS Изменение поведения

Extensions

Название Тип изменения
Вызов IHost.RunAsync и IHost.StopAsync при сбое фоновой службы Изменение поведения

Globalization

Название Тип изменения
Исправлена минимальная поддерживаемая дата японского календаря Изменение поведения

Interop

Название Тип изменения
NativeAOT использует префикс lib для выходных данных собственной библиотеки в Unix Изменение поведения

JIT-компилятор

Название Тип изменения
Минимальные требования к оборудованию обновлены Изменение поведения

Сеть

Название Тип изменения
Загрузка сертификатов AIA на стороне сервера SslStream отключена по умолчанию Изменение поведения

.NET MAUI

Название Тип изменения
Минимальный уровень API Android вырос до 24 Изменение поведения

SDK и MSBuild

Название Тип изменения
Цель запуска mono не задана для приложений .NET Framework Изменение поведения
VSTest удаляет зависимость от Newtonsoft.Json Несовместимый двоичный или исходный код