MSDN.WhiteKnight - Stack Overflow answers
Ответ на "Изменить и продолжить"
Answer 1304223
Ничего особенного для этого делать не нужно, режим Edit and Continue в Visual Studio существует и отлично работает. В версии 2012 и ранее он поддерживался только для 32-разрядных приложений. В современных версиях он работает при любой разрядности, и при любой поддерживаемой целевой платформе (.NET Framework, .NET Core и .NET 5). Реализована эта возможность путем отправки в работающий процесс изменений в метаданных и IL-коде методов, затронутых при редактировании, в особом недокументированном формате - так называемой "дельты", которая передается через функцию ApplyEditAndContinue во внутреннем интерфейсе CLR с отладчиком.
Для того, чтобы воспользоваться этим режимом, нужно только приостановить выполнение программы (кнопкой "Прервать все" или Ctrl + Alt + Break), внести изменения, а затем нажать "Продолжить". В новых версиях студии можно просто редактировать код в реальном времени - изменения подчеркиваются зеленым, и при следующей остановке и запуске они будут применены. Но поддерживаются не любые изменения - см. Supported code changes. Изменения, которые можно выразить дельтой IL, обычно поддерживаются (например, изменения в коде внутри метода, не затрагивающие блоки исключений), тогда как изменения, затрагивающие методы в целом, например удаление параметров из метода, не поддерживаются. Если вы сделаете неподдерживаемое изменение, продолжить отладку не получится, придется пересобирать проект и запускать отладку заново. Кроме того, Edit and Continue не поддерживается при отладке кода с оптимизацией (по умолчанию она включена в конфигурации Release).
Content is retrieved from StackExchange API.
Auto-generated by ruso-archive tools.