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

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

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

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

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

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

Замечание

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

ASP.NET Core

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

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

Название Тип изменения
CborReader и CborWriter используют максимальную глубину вложенности по умолчанию Изменение поведения
Сложные результаты специальных значений теперь следуют за C23 Приложение G Изменение поведения
Добавлена проверка CRC32 при чтении записей ZIP-архива Изменение поведения
Методы DateOnly и TimeOnly TryParse выдают исключение для недопустимых входных данных Изменение поведения
DeflateStream и GZipStream записывают заголовки и концевые элементы для пустого содержимого Изменение поведения
Environment.TickCount приведён в соответствие с поведением тайм-аутов Windows Изменение поведения
Math.Round и MathF.Round возвращают правильно округленные результаты Изменение поведения
NamedPipeServerStream с PipeOptions.CurrentUserOnly ужесточает права доступа файла сокета UNIX Изменение поведения
Nullable.GetUnderlyingType вызывает вызовы для подклассов пользовательского типа Изменение поведения
PackagePart.GetStream() возвращает неискиваемый поток для сжатых частей в пакетах ReadWrite Изменение поведения
Устаревшие API с нестандартными диагностическими идентификаторами (.NET 11) Несовместимый источник
SafeFileHandle.IsAsync и FileStream.IsAsync точно отражают неблокирующее состояние в Unix Изменение поведения
Интерфейсы чтения TAR проверяют контрольные суммы заголовков в процессе чтения Изменение поведения
TarWriter использует записи HardLink для жестко связанных файлов Изменение поведения
ZipArchive.CreateAsync с нетерпением загружает записи ZIP-архива Изменение поведения

Cryptography

Название Тип изменения
Устаревание API Несовместимый источник
Составной ML-DSA в Windows использует собственную реализацию Изменение поведения
DSA удалена из macOS Изменение поведения
Сертификат AIA Linux ограничен двумя выборками для каждой сборки цепочки Изменение поведения

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

Название Тип изменения
configProperties в .runtimeconfig.dev.json переопределяют настройки из .runtimeconfig.json Изменение поведения

Extensions

Название Тип изменения
ChangeToken.OnChange асинхронные перегрузки повторно привязывает существующие обратные вызовы, возвращающие задачу Изменение поведения
FileConfigurationProvider не вызывает маркер перезагрузки после неисправного сбоя загрузки Изменение поведения
Обратный вызов FileConfigurationSource.OnLoadException вызывается для ошибок ввода-вывода Изменение поведения
Вызов IHost.RunAsync и IHost.StopAsync при сбое фоновой службы Изменение поведения
Некоторые пакеты Microsoft.Extensions включены в состав общей платформы Изменение поведения

Globalization

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

Interop

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

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

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

Сеть

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

.NET MAUI

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

SDK и MSBuild

Название Тип изменения
Скрипты dnx обходят выбор SDK в global.json Изменение поведения
Цель запуска mono не задана для приложений .NET Framework Изменение поведения
Обработка команд NativeAOT CLI, включенная по умолчанию Изменение поведения
NU1703 предупреждает о пакетах, использующих устаревшие ресурсы платформы MonoAndroid Несовместимый источник
Пакет NuGet предупреждает об идентификаторах пакетов с ограниченными символами Изменение поведения
Выбор локальной среды выполнения контейнера SDK предпочитает собственные средства платформы Изменение поведения
Пакеты подсистемы шаблонов больше не поддерживают netstandard2.0 Несовместимый двоичный или исходный код
VSTest удаляет зависимость от Newtonsoft.Json Несовместимый двоичный или исходный код