配置“编辑并继续”(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 会在继续从中断状态继续调试时自动编译并应用代码更改。 否则,可以选择使用“调试”>“应用代码更改”来应用更改。
针对陈旧代码发出警告(仅限本机)
如果选择,则提供有关过时代码的警告。
选择“确定”。
停止代码更改
当热重载处于应用代码更改的过程中时,你可以停止该操作。
虽然“编辑并继续”正在应用代码更改,但可以停止该操作。
谨慎
停止托管代码中的代码更改可能会产生意外的结果。 对托管代码应用更改通常是一个快速的过程,因此很少需要停止托管代码中的代码更改。
要停止应用代码更改,请执行以下步骤:
从“调试”菜单中选择“停止应用代码更改”。
仅当应用代码更改时,此菜单项才可见。
如果选择此选项,则不会提交任何代码更改。