Критические изменения в .NET 7
Если вы переносите приложение на .NET 7, критические изменения, перечисленные здесь, могут повлиять на вас. Изменения сгруппированы по технологическим областям, например, ASP.NET Core или Windows Forms.
В этой статье указывается, совместим ли каждое критическое изменение с двоичным кодом или совместимо с источником:
- Двоичная совместимость . Существующие двоичные файлы будут загружаться и выполняться успешно без повторной компиляции, а поведение во время выполнения не изменится.
- Совместимость с исходным кодом. Исходный код успешно компилируется без изменений при нацеливание на новую среду выполнения или использование нового пакета SDK или компонента.
ASP.NET Core
Основные библиотеки .NET
Настройка
Заголовок | Совместимость на уровне двоичных файлов | Совместимость на уровне исходного кода |
---|---|---|
Система. диагностика запись в 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
Заголовок | Совместимость на уровне двоичных файлов | Совместимость на уровне исходного кода |
---|---|---|
Конструкторы принимают базовый интерфейс вместо конкретного типа | ❌ | ✔️ |
Удаленные вспомогательные методы направления потока | ❌ | ❌ |
Новый параметр UpdateBackground | ❌ | ✔️ |
Свойство ScrollToRequest переименовано | ❌ | ❌ |
Некоторые API Windows удаляются | ❌ | ❌ |
Сеть
Заголовок | Совместимость на уровне двоичных файлов | Совместимость на уровне исходного кода |
---|---|---|
Значение по умолчанию AllowRenegotiation равно false | ❌ | ❌ |
Пользовательские полезные данные ping в Linux | ❌ | ✔️ |
Методы Socket.End не вызывают ObjectDisposedException | ❌ | ✔️ |
SDK и MSBuild
Сериализация
Заголовок | Совместимость на уровне двоичных файлов | Совместимость на уровне исходного кода |
---|---|---|
DataContractSerializer сохраняет знак при десериализации -0 | ❌ | ✔️ |
Десериализация типа версии с начальным или конечным пробелами | ❌ | ✔️ |
Конструктор копирования JsonSerializerOptions включает JsonSerializerContext | ❌ | ✔️ |
Полиморфная сериализация для типов объектов | ❌ | ✔️ |
Резервный вариант генератора источника System.Text.Json | ❌ | ✔️ |
Windows Forms
Заголовок | Совместимость на уровне двоичных файлов | Совместимость на уровне исходного кода |
---|---|---|
Обсоления и предупреждения | ✔️ | ❌ |
Некоторые API создают исключение ArgumentNullException | ❌ | ✔️ |
WPF
Заголовок | Совместимость на уровне двоичных файлов | Совместимость на уровне исходного кода | Обратная совместимость |
---|---|---|---|
Восстановленное поведение операций перетаскивания в текстовых редакторах | ✔️ | ✔️ | ❌ |
XML и XSLT
Заголовок | Совместимость на уровне двоичных файлов | Совместимость на уровне исходного кода |
---|---|---|
XmlSecureResolver устарел | ❌ | ❌ |
См. также
Совместная работа с нами на GitHub
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.