借助热重载或 C# 的“编辑并继续”,可以在调试时在中断或运行模式下更改代码。 可以应用更改,而无需停止和重启调试会话。
基本热重载体验适用于大多数类型的 .NET 应用和框架版本。 这包括 .NET Framework、.NET Core 和 .NET 5+ (适用于 C# 和 Visual Basic)。 在这种情况下的预期是,如果你使用调试器,可以假设热重载是可用的,并大胆尝试一下!
热重载支持您在调试过程中进行的大多数更改,但也有一些例外。 例如,启用了托管和本机调试器的优化代码或调试会话不支持热重载。
有关其他不受支持的方案的信息,请参阅支持的代码更改(C# 和 Visual Basic)。 如果尝试通过其中一种方案应用代码更改,则会显示一个消息框,指出不支持热重载。
使用热重载
在中断模式下进行代码更改时,C# 的热重载会自动发生,然后使用 Continue、 Step 或 Set Next 语句继续调试。 如果在 文件保存时将热重载 设置为 true,保存文件时也会自动发生。
要启用或禁用热重载,请执行以下步骤:
- 如果处于调试会话中,请停止调试(调试>停止调试 或 Shift + F5)。
打开 “工具>选项 ”窗格,然后展开“ 所有设置>调试>.NET/C++热重载 ”部分。
选择或清除该功能所需的 “启用热重载 ”选项。
打开 “工具>选项 ”对话框,然后展开 “调试>.NET/C++热重载 ”部分。
选择或清除该功能所需的 “启用热重载 ”选项,然后选择“ 确定”。
启动或重启调试会话时,该设置生效。
若要使用经典“编辑并继续”体验,
调试时,在中断模式下对源代码进行更改。
在 “调试 ”菜单中,选择“ 继续”、“ 步骤”或 “设置下一个语句”。 调试将继续使用新的已编译代码。
编辑并继续不支持某些类型的代码更改。 有关详细信息,请参阅支持的代码更改(C# 和 Visual Basic)。
使用 C# 的“编辑并继续”,可以在调试时在中断或运行模式下更改代码。 可以应用更改,而无需停止和重启调试会话。 在运行模式下,源编辑器为只读。
Windows 10 或更高版本的 UWP 以及面向 .NET Framework 4.6 桌面或更高版本的 x86 和 x64 应用(.NET Framework 仅桌面版本)支持“编辑并继续”。
调试会话期间可以进行的大部分更改都受编辑并继续功能支持,但也有一些例外情况。 优化、混合或 SQL Server 公共语言运行时(CLR)集成代码不支持“编辑并继续”功能。 有关其他不受支持的方案的信息,请参阅支持的代码更改(C# 和 Visual Basic)。 如果您尝试在这些情境之一中编辑并继续,将出现一个消息框,说明不支持“Edit and Continue”功能。
有关其他不受支持的方案的信息,请参阅支持的代码更改(C# 和 Visual Basic)。 如果尝试通过其中一种方案应用代码更改,则会显示一个消息框,指出不支持热重载。
使用“编辑并继续”
当您在中断模式下更改代码时,C# 的编辑并继续功能会自动发生,然后可以通过使用继续、单步或设为下一语句继续调试,或在调试器窗口中评估函数。
启用或禁用“编辑并继续”:
如果处于调试会话中,请停止调试(调试>停止调试 或 Shift+F5)。
在 工具>选项 (或 调试>选项) >调试>常规中,选中或清除“ 启用编辑并继续 ”复选框。
启动或重启调试会话时,该设置生效。
为了使用编辑并继续功能:
调试时,在中断模式下对源代码进行更改。
在 “调试 ”菜单中,选择“ 继续”、“ 步骤”或 “设置下一个语句”,或在调试器窗口中评估函数。
调试将继续使用新的已编译代码。
编辑并继续不支持某些类型的代码更改。 有关详细信息,请参阅支持的代码更改(C# 和 Visual Basic)。