Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Если вы переносите приложение на .NET 10, критические изменения, перечисленные здесь, могут повлиять на вас. Изменения группируются по областям технологий, таким как ASP.NET Core или Windows Forms.
Эта статья классифицирует каждое критическое изменение как двоично несовместимое или по исходному коду несовместимое, или как изменение в поведении:
Двоично несовместимо — При запуске с новой средой выполнения или компонентом существующие двоичные файлы могут столкнуться с нарушающим совместимость изменением поведения, например сбоем загрузки или выполнения, и в таком случае потребовать перекомпиляции.
Несовместимость исходного кода — при повторной компиляции с использованием нового пакета SDK или компонента или при нацеливании на новую среду выполнения существующий исходный код может потребовать изменений исходного кода для успешной компиляции.
Изменение поведения — существующий код и двоичные файлы могут вести себя по-разному во время выполнения. Если новое поведение нежелательно, необходимо обновить и перекомпилировать существующий код.
Замечание
Эта статья находится в процессе написания. Это не полный список критических изменений в .NET 10.
ASP.NET Core
См. критические изменения в ASP.NET Core 10.
Containers
| Название | Тип изменения |
|---|---|
| Образы .NET по умолчанию используют Ubuntu | Изменение поведения |
| Для dotnet test в контейнерах требуется записываемый базовый каталог артефактов VSTest | Изменение поведения |
Основные библиотеки .NET
Cryptography
| Название | Тип изменения |
|---|---|
| CompositeMLDsa обновлен до draft-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 | Несовместимый источник |
| Удалена аннотация DynamicallyAccessedMembers из небезопасного для тримминга кода 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
Сериализация
| Название | Тип изменения |
|---|---|
| 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)
| Название | Тип изменения |
|---|---|
| Пустые ColumnDefinitions и RowDefinitions запрещены | Несовместимый источник |
| Неправильное использование DynamicResource приводит к сбою приложения | Изменение, несовместимое с источником/поведенческое изменение |