Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Механизм горячей перезагрузки, ранее называвшийся "Редактировать и продолжить", обрабатывает большинство типов изменений кода внутри тел методов. Большинство изменений вне тел методов и некоторые изменения в самих телах методов, однако, не могут применяться во время отладки. Чтобы применить неподдерживаемые изменения, необходимо остановить отладку и перезапустить с помощью новой версии кода.
Поддерживаемые изменения в коде
В следующей таблице показаны изменения, которые могут быть внесены в код C# и Visual Basic во время сеанса отладки без перезапуска сеанса.
| Элемент языка или компонент | Поддерживаемая операция редактирования | Ограничения |
|---|---|---|
| Типы | Добавление методов, полей, конструкторов и т. д. | Да |
| Итераторы | Добавление или изменение | Нет |
| асинхронные выражения async/await | Добавление или изменение | Да |
| Динамические объекты | Добавление или изменение | Нет |
| лямбда-выражения | Добавление или изменение | Да |
| Выражения LINQ | Добавление или изменение | То же, что и лямбда-выражения |
| Обобщения | Добавление или изменение | Да |
Заметка
Более новые языковые функции, такие как интерполяция строк и операторы условного доступа с значением NULL, обычно поддерживаются функцией Edit and Continue. Актуальную информацию см. на странице Enc Supported Edits. Для .NET Framework поддерживаемые функции являются подмножеством перечисленных компонентов и зависят от версии компилятора.
Улучшения .NET 6+
Улучшения в .NET 6 и Visual Studio 2022 и более поздних версиях включают поддержку дополнительных типов изменений, которые выходят за рамки того, что изначально возможно в более ранних версиях Visual Studio. Эти улучшения доступны как для горячей перезагрузки, так и для возможностей редактирования и продолжения.
Возможность Горячей перезагрузки .NET 6+ обеспечивается с помощью механизма редактирования и продолжения и Roslyn. Поддерживаемые изменения перечислены перечень типов изменений, поддерживаемых в настоящее время Roslyn и потенциальные улучшения в будущем.
Неподдерживаемые изменения кода
Следующие изменения нельзя применить к коду C# и Visual Basic во время сеанса отладки.
Изменения текущей инструкции или любой другой активной инструкции.
Активная инструкция — это любая инструкция в функции в стеке вызовов, которая была вызвана для получения текущей инструкции.
Текущая инструкция отображается на желтом фоне в окне источника. Другие активные инструкции отображаются на затенированном фоне, а также предназначены только для чтения. Эти цвета по умолчанию можно изменить в диалоговом окне Параметры.
Любые неподдерживаемые изменения кода по элементу языка, как описано в следующей таблице.
Информацию о поддерживаемых и неподдерживаемых типах изменений для .NET 6+ и Visual Studio 2022 см. в разделе "Поддерживаемые изменения" и.
Небезопасный код
Изменения в небезопасном коде имеют те же ограничения, что и изменения в безопасном коде, с одним дополнительным ограничением: Изменение и продолжение не поддерживает изменения в небезопасном коде, выходя из метода, содержащего оператор stackalloc.
Поддержка приложений
К поддерживаемым приложениям относятся:
- Приложения UWP в Windows 10 или Windows 11
- приложения x86 и x64, предназначенные для настольной версии .NET Framework 4.6 или более поздних версий (.NET Framework — это только настольная версия)
Для .NET 6 и более поздних версий редактирование поддерживается для следующих типов файлов:
- CSHTML
- .бритва
Неподдерживаемые приложения, платформы и операции
Неподдерживаемые приложения или платформы включают:
- F#
- .NET Native
- Silverlight 5
- Windows 8.1
- Xamarin.Forms (iOS и Android)
Для ASP.NET и ASP.NET Core редактирование не поддерживается для следующих типов файлов:
- .aspx
- .ascx
Неподдерживаемые сценарии
Изменение и продолжение недоступно в следующих сценариях отладки:
Отладка в смешанном режиме (собственный или управляемый).
Отладка в Arm64 без назначения .NET 7 или более поздней версии.
Отладка с помощью набора переменных среды COR_ENABLE_PROFILING.
Отладка приложения с помощью подключения к процессу (отладка > присоединение к процессу) вместо запуска приложения путем выбора запуска в меню отладки. Если вы хотите использовать функцию "Редактировать и продолжить" при присоединении к процессу, перед запуском процесса необходимо задать переменную окружения COMPLUS_ForceENC (
set COMPLUS_ForceENC=1).Отладка недетерминированных версий сборки (например, основанных на времени). Если вы хотите использовать Edit and Continue, попробуйте задать версию только в сборках Релиз (или CI) и сохранить версию в отладочных сборках постоянной.
Отладка оптимизированного кода.
Отладка SQL.
Отладка файла дампа.
Отладка внедренного приложения среды выполнения.
Отладка старой версии кода после сбоя сборки новой версии из-за ошибок сборки.
Связанное содержимое
- "Редактировать и продолжать" (Visual C#)
- Как использовать: Правка и Продолжение (C#)
- Настройка функции "Правка и продолжение"