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


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

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

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

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

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

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

Замечание

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

ASP.NET Core

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

Containers

Название Тип изменения
Образы .NET по умолчанию используют Ubuntu Изменение поведения

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

Название Тип изменения
Устаревание API Несовместимый источник
изменение поведения ActivitySource.CreateActivity и ActivitySource.StartActivity Изменение поведения
Для неуклюжей нагрузки Arm64 SVE требуют маски Несовместимый двоичный или исходный код
BufferedStream.WriteByte больше не выполняет неявный сброс Изменение поведения
разрешение перегрузки C# 14 с параметрами диапазона Изменение поведения
последовательное поведение сдвига в универсальной математике Изменение поведения
Распространитель контекста трассировки по умолчанию обновлен до стандарта W3C Изменение поведения
DriveInfo.DriveFormat возвращает типы файловой системы Linux Изменение поведения
Заметка ДинамическиAccessedMembers удалена из ctor DefaultValueAttribute Несовместимый двоичный или исходный код
Явный размер структуры запрещен с помощью InlineArray Бинарно несовместимый
FilePatternMatch.Stem изменен на непустую Изменение, несовместимое с источником/поведенческое изменение
GnuTarEntry и PaxTarEntry больше не включают время доступа и время изменения по умолчанию Изменение поведения
синтаксический анализ LDAP DirectoryControl теперь более строгий Изменение поведения
нормализация версий MacCatalyst Изменение поведения
Среда выполнения .NET больше не предоставляет обработчики сигналов завершения по умолчанию Изменение поведения
System.Linq.AsyncEnumerable входит в состав основных библиотек Несовместимый источник
Проверка аргумента Type.MakeGenericSignatureType Изменение поведения

Cryptography

Название Тип изменения
Составной MLDsa обновлен до черновика 08 Изменение поведения
CoseSigner.Key может иметь значение NULL Несовместимое изменение поведения и источника
Элементы MLDsa и SlhDsa SecretKey переименованы Несовместимый источник
Криптографические примитивы OpenSSL не поддерживаются в macOS Изменение поведения
Требуется OpenSSL 1.1.1 или более поздней версии в Unix Изменение поведения
Проверка X500DistinguishedName стала более строгой Изменение поведения
параметры ключа X509Certificate и PublicKey могут иметь значение NULL Несовместимое изменение поведения и источника
переменная среды переименована в DOTNET_OPENSSL_VERSION_OVERRIDE Изменение поведения

Entity Framework Core (платформа для работы с базами данных)

См. критические изменения в EF Core 10.

Extensions

Название Тип изменения
BackgroundService выполняет весь метод ExecuteAsync как задачу Изменение поведения
Устранение проблем в GetKeyedService() и GetKeyedServices() с помощью AnyKey Изменение поведения
Значения NULL, сохраненные в конфигурации Изменение поведения
Сообщение больше не дублируется в выходных данных журнала консоли Изменение поведения
ProviderAliasAttribute перемещен в сборку Microsoft.Extensions.Logging.Abstractions Несовместимый источник
Удалена заметка ДинамическиAccessedMembers из небезопасного кода Microsoft.Extensions.Configuration Бинарно несовместимый

Globalization

Название Тип изменения
переменная среды переименована в DOTNET_ICU_VERSION_OVERRIDE Изменение поведения

Средство установки

Название Тип изменения
API dotnet.acquire для VS Code больше не всегда загружает последнюю версию Изменение поведения

Interop

Название Тип изменения
Приведение объекта IDispatchEx COM к IReflect завершается ошибкой Изменение поведения
Однофайловые приложения больше не ищут собственные библиотеки в исполняемом каталоге Изменение поведения
Указание DllImportSearchPath.AssemblyDirectory приводит к поиску исключительно в каталоге сборки. Изменение поведения

Нетворкинг

Название Тип изменения
Поддержка HTTP/3, отключенная по умолчанию с помощью PublishTrimmed Несовместимый источник
MailAddress обеспечивает проверку на наличие последовательных точек Изменение поведения
Потоковая передача HTTP-ответов, включенных по умолчанию в http-клиентах браузера Изменение поведения
Uri Ограничения длины удалены Изменение поведения

Reflection

Название Тип изменения Представленная версия
Дополнительные ограниченные заметки в InvokeMember/FindMembers/DeclaredMembers Несовместимость поведенческой модели и исходного кода
Проверка аргумента Type.MakeGenericSignatureType Изменение поведения

SDK и MSBuild

Название Тип изменения
Интерфейс командной строки --interactive .NET по умолчанию используется true в пользовательских сценариях Изменение поведения
dotnet Команды CLI регистрируют данные, не относящиеся к командам, в stderr Изменение поведения
Упаковка инструментов .NET создает пакеты средств runtimeIdentifier, относящиеся к среде выполнения Изменение поведения
Типовая конфигурация рабочей нагрузки от "нестрогих манифестов" к режиму "наборы рабочих нагрузок" Изменение поведения
Покрытие кода EnableDynamicNativeInstrumentation по умолчанию равно false Изменение поведения
dnx.ps1 файл больше не включен в пакет SDK для .NET Несовместимый источник
Двойные кавычки в директивах уровня файлов запрещены Несовместимый источник
dotnet new sln По умолчанию используется формат файла SLNX Изменение поведения
dotnet package list выполняет восстановление Изменение поведения
dotnet restore аудит транзитивных пакетов Изменение поведения
dotnet tool install --local создает манифест по умолчанию Изменение поведения
dotnet watch логи в stderr вместо stdout Изменение поведения
project.json не поддерживается в dotnet restore Несовместимый источник
Поддержка отпечатков пальцев SHA-1 устарела в dotnet nuget sign Изменение поведения
MSBUILDCUSTOMBUILDEVENTWARNING обходной путь удален Изменение поведения
Обработка ресурсов настраиваемой культуры в MSBuild Изменение поведения
NU1510 возникает для прямых ссылок, удалённых NuGet Несовместимый источник
Пакеты NuGet без ресурсов среды выполнения не включены в deps.json Несовместимый источник
PackageReference без версии вызывает ошибку Изменение поведения
PrunePackageReference приватизирует прямые перерезаемые ссылки Изменение поведения
Предупреждения HTTP повышены до уровня ошибок dotnet package list и dotnet package search Несовместимое изменение поведения и источника
удалена переменная среды NUGET_ENABLE_ENHANCED_HTTP_RETRY Изменение поведения
NuGet регистрирует ошибку для недопустимых идентификаторов пакетов Изменение поведения
ToolCommandName не задано для пакетов, отличных от инструментов Несовместимый источник

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

Название Тип изменения
System.Text.Json проверяет наличие конфликтов имен свойств Изменение поведения
XmlSerializer больше не игнорирует свойства, помеченные атрибутом ObsoleteAttribute Изменение поведения

Windows Forms

Название Тип изменения
Устаревание API Несовместимый источник
Приложения, ссылающиеся на WPF и WinForms, должны различать типы MenuItem и ContextMenu Несовместимый источник
параметр переименован в HtmlElement.InsertAdjacentElement Несовместимый источник
усечение изображения флажка TreeView Изменение поведения
StatusStrip использует System RenderMode по умолчанию Изменение поведения
System.Drawing OutOfMemoryException изменено на ExternalException Изменение поведения

Windows Presentation Foundation (WPF)

Название Тип изменения
Пустые столбцыDefinitions и RowDefinitions запрещены Несовместимый источник
Неправильное использование DynamicResource приводит к сбою приложения Изменение, несовместимое с источником/поведенческое изменение