配置“编辑并继续”(C#、VB、C++)
可以在设计时在 Visual Studio“选项”对话框中禁用或启用“热重载”(以前称为“编辑并继续”)。 “热重载”仅适用于调试版本。 有关详细信息,请参阅热重载。
“编辑并继续”是一种省时的功能,使你能够在程序处于中断模式时更改源代码。 当你通过选择一条类似“继续”或“单步执行”的执行命令继续执行程序时,“编辑并继续”会有限制地自动应用代码更改 。 这允许你在调试会话期间更改代码,而不是停止程序,重新编译整个程序,再重新启动调试会话。
设计时,可以在 Visual Studio“选项”对话框中禁用或启用“编辑并继续”。 “编辑并继续”仅在调试版本中起作用。 有关详细信息,请参阅编辑并继续。
对于本机 C++,“编辑并继续”需要使用 /INCREMENTAL
选项。 有关 C++ 中的功能要求的详细信息,请参阅此博客文章和编辑并继续 (C++)。
启用和配置热重载
可以通过从“热重载”下拉按钮中选择“设置”来配置热重载。
或者,打开“工具”>“选项”>“调试”>“.NET/C++ 热重载”。
注意
如果启用了 IntelliTrace 并且收集 IntelliTrace 事件和调用信息,则会禁用“编辑并继续”。 有关详细信息,请参阅 IntelliTrace。
热重载的设置包括:
调试时启用热重载和“编辑并继续”。 在附加调试器 (F5) 的情况下启动时启用热重载。
在不调试的情况下启动时启用热重载。 在没有附加调试器的情况下启动时启用热重载 (Ctrl+F5)。
保存文件时应用热重载。 保存文件时应用代码更改。
日志记录详细程度。 筛选“热重载输出”窗口中显示的信息量。
对于 .NET 热重载,还可以通过修改 .NET 6+ 项目的 launchSetting.json 文件并将 hotReloadEnabled
设置为 false
来控制热重载是否在项目级别可用。
示例:
{
"profiles": {
"Console": {
"commandName": "Project",
"hotReloadEnabled": false
}
}
}
对于 C++,可以通过打开“工具”>“选项”>“调试”>“常规”来设置其他选项。 确保已选择“启用热重载”,并设置其他选项:
继续应用更改(仅限本机)
如果选择,则在从中断状态继续调试时,Visual Studio 会自动编译并应用代码更改。 否则,可以选择使用“调试”>“应用代码更改”来应用更改。
警告过时代码(仅限本机)
如果选择,则提供有关陈旧代码的警告。
启用或禁用“编辑并继续”
如果正在进行调试会话,请停止调试(“调试”>“停止调试”或按 Shift+F5) 。
在“工具”>“选项”>(或“调试”>“选项”)>“调试”>“常规”中,选择右窗格中的“编辑并继续”。
注意
如果启用了 IntelliTrace 并且收集 IntelliTrace 事件和调用信息,则会禁用“编辑并继续”。 有关详细信息,请参阅 IntelliTrace。
对于 C++ 代码,请确保选择“启用本机‘编辑并继续’”,并设置其他选项:
继续应用更改(仅限本机)
如果选择,则在从中断状态继续调试时,Visual Studio 会自动编译并应用代码更改。 否则,可以选择使用“调试”>“应用代码更改”来应用更改。
警告过时代码(仅限本机)
如果选择,则提供有关陈旧代码的警告。
选择“确定”。
停止代码更改
当“热重载”处于应用代码更改的过程中时,可以停止该操作。
当“编辑并继续”处于应用代码更改的过程中时,您可以停止该操作。
注意
在托管代码中停止代码更改可能产生意外结果。 将更改应用到托管代码通常是一个很迅速的过程,因此极少需要在托管代码中停止代码更改。
要停止应用代码更改:
从“调试”菜单中选择“停止应用代码更改” 。
该菜单项仅在应用代码更改时才可见。
如果选择了改选项,就不会进行任何代码更改。