编辑并继续 (Visual C#)

借助热重载或 C# 的“编辑并继续”,可以在调试时在中断或运行模式下更改代码。 可以应用更改,而无需停止和重启调试会话。

基本热重载体验适用于大多数类型的 .NET 应用和框架版本。 这包括 .NET Framework、.NET Core 和 .NET 5+ (适用于 C# 和 Visual Basic)。 在这种情况下的预期是,如果你使用调试器,可以假设热重载是可用的,并大胆尝试一下!

热重载支持您在调试过程中进行的大多数更改,但也有一些例外。 例如,启用了托管和本机调试器的优化代码或调试会话不支持热重载。

有关其他不受支持的方案的信息,请参阅支持的代码更改(C# 和 Visual Basic)。 如果尝试通过其中一种方案应用代码更改,则会显示一个消息框,指出不支持热重载。

使用热重载

在中断模式下进行代码更改时,C# 的热重载会自动发生,然后使用 ContinueStepSet Next 语句继续调试。 如果在 文件保存时将热重载 设置为 true,保存文件时也会自动发生。

要启用或禁用热重载,请执行以下步骤:

  1. 如果处于调试会话中,请停止调试(调试>停止调试Shift + F5)。
  1. 打开 “工具>选项 ”窗格,然后展开“ 所有设置>调试>.NET/C++热重载 ”部分。

  2. 选择或清除该功能所需的 “启用热重载 ”选项。

  1. 打开 “工具>选项 ”对话框,然后展开 “调试>.NET/C++热重载 ”部分。

  2. 选择或清除该功能所需的 “启用热重载 ”选项,然后选择“ 确定”。

启动或重启调试会话时,该设置生效。

若要使用经典“编辑并继续”体验,

  1. 调试时,在中断模式下对源代码进行更改。

  2. “调试 ”菜单中,选择“ 继续”、“ 步骤”或 “设置下一个语句”。 调试将继续使用新的已编译代码。

编辑并继续不支持某些类型的代码更改。 有关详细信息,请参阅支持的代码更改(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# 的编辑并继续功能会自动发生,然后可以通过使用继续单步设为下一语句继续调试,或在调试器窗口中评估函数。

启用或禁用“编辑并继续”:

  1. 如果处于调试会话中,请停止调试(调试>停止调试Shift+F5)。

  2. 工具>选项 (或 调试>选项) >调试>常规中,选中或清除“ 启用编辑并继续 ”复选框。

启动或重启调试会话时,该设置生效。

为了使用编辑并继续功能:

  1. 调试时,在中断模式下对源代码进行更改。

  2. “调试 ”菜单中,选择“ 继续”、“ 步骤”或 “设置下一个语句”,或在调试器窗口中评估函数。

    调试将继续使用新的已编译代码。

编辑并继续不支持某些类型的代码更改。 有关详细信息,请参阅支持的代码更改(C# 和 Visual Basic)。