Прочитать на английском

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


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

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

В этой статье указывается, совместим ли каждое критическое изменение с двоичным кодом или совместимо с источником:

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

ASP.NET Core

Заголовок Совместимость на уровне двоичных файлов Совместимость на уровне исходного кода
Действия контроллера API пытаются определить параметры из DI ✔️
Приоритет переменной среды с префиксом ASPNET ✔️ ✔️
AuthenticationAsync для удаленных поставщиков проверки подлинности ✔️
Проверка подлинности в приложениях WebAssembly ✔️
Схема проверки подлинности по умолчанию ✔️
Идентификаторы событий для некоторых сообщений журнала Microsoft.AspNetCore.Mvc.Core изменены ✔️
Резервные конечные точки файлов ✔️
IHubClients и IHubCallerClients скрывают элементы ✔️
Kestrel: удалена привязка HTTPS по умолчанию ✔️
Microsoft.AspNetCore.Server.Kestrel. Транспорт.Libuv и libuv.dll удалены
Microsoft.Data.SqlClient обновлено до версии 4.0.1 ✔️
ПО промежуточного слоя больше не откладывает конечную точку с делегатом запроса NULL ✔️
Обнаружение пустого тела в привязке модели изменилось ✔️
Изменения API кэширования выходных данных
Методы Центра SignalR пытаются разрешить параметры из di ✔️

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

Заголовок Совместимость на уровне двоичных файлов Совместимость на уровне исходного кода
Обзоления API с идентификатором диагностики по умолчанию ✔️
Устаревшие API с отличными от заданных по умолчанию идентификаторами диагностики ✔️
API сериализации BinaryFormatter создают ошибки компилятора ✔️
BrotliStream больше не разрешает неопределенные значения CompressionLevel ✔️
Проекты C++/CLI в Visual Studio ✔️
Изменения, внесенные в отражение, вызывают исключения API ✔️
Сборная сборки в неубираемой сборке AssemblyLoadContext ✔️
Изменение точности методов добавления DateTime ✔️ ✔️
Изменение поведения метода Equals для NaN ✔️
Поведение обратного вызова EventSource ✔️ ✔️
Ограничение универсального типа для PatternContext<T>
Устаревшая стратегия FileStream удалена ✔️
Поддержка библиотек для старых платформ
Максимальная точность для строк числового формата ✔️
Шаблоны регулярных выражений с исправленными диапазонами ✔️ ✔️
SerializationFormat.Binary устарел
Удален параметр конфигурации System.Drawing.Common ✔️ ✔️
Пакет NuGet System.Runtime.CompilerServices.Unsafe ✔️ ✔️
Поля времени для символьных ссылок ✔️
Отслеживание записей связанного кэша ✔️
Проверка CompressionLevel для BrotliStream ✔️

Настройка

Заголовок Совместимость на уровне двоичных файлов Совместимость на уровне исходного кода
Система. диагностика запись в app.config ✔️

Шифрование

Заголовок Совместимость на уровне двоичных файлов Совместимость на уровне исходного кода
Расшифровка EnvelopedCms не выполняет двойной распаковки ✔️
Время проверки Dynamic X509ChainPolicy ✔️
Синтаксический анализ X500DistinguishedName с понятными именами ✔️

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

Заголовок Совместимость на уровне двоичных файлов Совместимость на уровне исходного кода
Все сборки, обрезанные по умолчанию ✔️
Многоуровневый поиск отключен ✔️
Путь к 64-разрядному узлу x86 в Windows ✔️ ✔️
TrimmerDefaultAction не рекомендуется ✔️

Entity Framework Core

Критические изменения в EF Core 7

Расширения

Заголовок Совместимость на уровне двоичных файлов Совместимость на уровне исходного кода
Конфигурация привязки к словарю расширяет значения ✔️ ✔️
ContentRootPath для приложений, запущенных оболочкой Windows ✔️
Префиксы переменной среды ✔️

Глобализация

Заголовок Совместимость на уровне двоичных файлов Совместимость на уровне исходного кода
API глобализации используют библиотеки ICU в Windows Server ✔️

Interop

Заголовок Совместимость на уровне двоичных файлов Совместимость на уровне исходного кода
RuntimeInformation.OSArchitecture под эмуляцией ✔️

.NET MAUI

Сеть

Заголовок Совместимость на уровне двоичных файлов Совместимость на уровне исходного кода
Значение по умолчанию AllowRenegotiation равно false
Пользовательские полезные данные ping в Linux ✔️
Методы Socket.End не вызывают ObjectDisposedException ✔️

SDK и MSBuild

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

Windows Forms

Заголовок Совместимость на уровне двоичных файлов Совместимость на уровне исходного кода
Обсоления и предупреждения ✔️
Некоторые API создают исключение ArgumentNullException ✔️

WPF

Заголовок Совместимость на уровне двоичных файлов Совместимость на уровне исходного кода Обратная совместимость
Восстановленное поведение операций перетаскивания в текстовых редакторах ✔️ ✔️

XML и XSLT

Заголовок Совместимость на уровне двоичных файлов Совместимость на уровне исходного кода
XmlSecureResolver устарел

См. также