Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Если вы переносите приложение на .NET 7, критические изменения, перечисленные здесь, могут повлиять на вас. Изменения сгруппированы по технологическим областям, например, ASP.NET Core или Windows Forms.
Эта статья классифицирует каждое критическое изменение как двоично несовместимое или по исходному коду несовместимое, или как изменение в поведении:
Бинарная несовместимость - При запуске в новой среде выполнения или с новым компонентом существующие двоичные файлы могут столкнуться с критическим изменением в поведении, например, сбоем при загрузке или выполнении, и тогда может потребоваться их повторная компиляция.
Несовместимость исходного кода. При повторной компиляции с использованием нового пакета SDK или компонента или при нацеливании на новую среду выполнения, существующий исходный код может потребовать изменения для успешной компиляции.
Изменение поведения. Существующий код и двоичные файлы могут вести себя по-разному во время выполнения. Если новое поведение нежелательно, необходимо обновить и перекомпилировать существующий код.
ASP.NET Core
См. критические изменения в ASP.NET Core 7.
Основные библиотеки .NET
Настройка
| Заголовок | Тип изменения |
|---|---|
| Система. диагностика запись в app.config | Бинарно несовместимый |
Шифрование
| Заголовок | Тип изменения |
|---|---|
| Расшифровка EnvelopedCms не выполняет двойной распаковки | Бинарно несовместимый |
| Время проверки Dynamic X509ChainPolicy | Бинарно несовместимый |
| Синтаксический анализ X500DistinguishedName с понятными именами | Бинарно несовместимый |
Развертывание
| Заголовок | Тип изменения |
|---|---|
| Все сборки, обрезанные по умолчанию | Несовместимый источник |
| Многоуровневый поиск отключен | Бинарно несовместимый |
| Путь к 64-разрядному узлу x86 в Windows | Изменение поведения |
| TrimmerDefaultAction не рекомендуется | Несовместимый источник |
Entity Framework Core (платформа для работы с базами данных)
См. критические изменения в EF Core 7.
Расширения
| Заголовок | Тип изменения |
|---|---|
| Конфигурация привязки к словарю расширяет значения | Изменение поведения |
| ContentRootPath для приложений, запущенных оболочкой Windows | Бинарно несовместимый |
| Префиксы переменной среды | Бинарно несовместимый |
Глобализация
| Заголовок | Тип изменения |
|---|---|
| API глобализации используют библиотеки ICU в Windows Server | Бинарно несовместимый |
Взаимодействие
| Заголовок | Тип изменения |
|---|---|
| RuntimeInformation.OSArchitecture под эмуляцией | Бинарно несовместимый |
.NET MAUI
| Заголовок | Тип изменения |
|---|---|
| Конструкторы принимают базовый интерфейс вместо конкретного типа | Бинарно несовместимый |
| Удаленные вспомогательные методы направления потока | Несовместимый двоичный или исходный код |
| Новый параметр UpdateBackground | Бинарно несовместимый |
| Свойство ScrollToRequest переименовано | Несовместимый двоичный или исходный код |
| Некоторые API Windows удаляются | Несовместимый двоичный или исходный код |
Сеть
| Заголовок | Тип изменения |
|---|---|
| Значение по умолчанию AllowRenegotiation равно false | Несовместимый двоичный или исходный код |
| Пользовательские полезные данные ping в Linux | Бинарно несовместимый |
| Методы Socket.End не вызывают ObjectDisposedException | Бинарно несовместимый |
SDK и MSBuild
| Заголовок | Тип изменения |
|---|---|
| Автоматическое средство RuntimeIdentifier только для публикации | Несовместимый двоичный или исходный код |
| Выходные данные консоли CLI используют UTF-8 | Несовместимый двоичный или исходный код |
| Кодировка консоли не UTF-8 после завершения | Бинарно несовместимый |
| Сериализация MSBuild пользовательских типов в .NET 7 | Несовместимый двоичный или исходный код |
| Параллельные установки пакета SDK | Несовместимый двоичный или исходный код |
| Манифесты инструментов в корневой папке | Изменение поведения |
| Требования к версии пакета SDK для .NET 7 | Изменение поведения |
dotnet test: переключение -a на псевдоним --arch вместо --test-adapter-path |
Несовместимый двоичный или исходный код |
dotnet test: переключение -r на псевдоним --runtime вместо --results-dir |
Несовместимый двоичный или исходный код |
--output Параметр больше не действителен для команд уровня решения |
Несовместимый двоичный или исходный код |
| Пакет SDK больше не вызывает ResolvePackageDependencies | Несовместимый источник |
Сериализация
| Заголовок | Тип изменения |
|---|---|
| DataContractSerializer сохраняет знак при десериализации -0 | Бинарно несовместимый |
| Десериализация типа версии с начальным или конечным пробелами | Бинарно несовместимый |
| Конструктор копирования JsonSerializerOptions включает JsonSerializerContext | Бинарно несовместимый |
| Полиморфная сериализация для типов объектов | Бинарно несовместимый |
| Резервный вариант генератора источника System.Text.Json | Бинарно несовместимый |
Windows Forms
| Заголовок | Тип изменения |
|---|---|
| Обсоления и предупреждения | Несовместимый источник |
| Некоторые API создают исключение ArgumentNullException | Бинарно несовместимый |
WPF (Windows Presentation Foundation)
| Заголовок | Тип изменения |
|---|---|
| Восстановленное поведение операций перетаскивания в текстовых редакторах | Изменение поведения |
XML и XSLT
| Заголовок | Тип изменения |
|---|---|
| XmlSecureResolver устарел | Несовместимый двоичный или исходный код |