通过


在 Visual Studio 中远程调试 C# 或 Visual Basic project

若要调试已在其他计算机上部署的 Visual Studio 应用程序,请在部署应用的计算机上安装并运行远程工具,请将project配置为从 Visual Studio 连接到远程计算机,然后运行应用。

远程调试器组件的屏幕截图。Remote_debugger_components

有关远程调试通用 Windows 应用(UWP)的信息,请参阅 调试已安装的应用包。

要求

从 Windows Server 2008 Service Pack 2 开始,远程调试器在 Windows 7 和更新版本以及 Windows Server 版本上受支持。 有关要求的完整列表,请参阅 要求。

备注

不支持在通过代理连接的两台计算机之间进行调试。 不建议通过高延迟或低带宽(例如拨号上网)进行调试,或通过跨国家/地区的 Internet 进行调试,因为可能会失败或速度不可接受。

下载并安装远程工具

在要调试的远程设备或服务器上,而不是Visual Studio计算机上,从下表中的链接下载并安装正确版本的远程工具。

  • 下载Visual Studio版本的远程工具的最新更新。 Visual Studio 2022 和 2026 的远程工具可用于任一版本的Visual Studio。 但是,早于 Visual Studio 2022 的远程工具版本与更高版本的Visual Studio版本不兼容。 (例如,如果使用 Visual Studio 2019,请下载 Visual Studio 2019 远程工具的最新更新。在此方案中,请勿下载用于 Visual Studio 2022 的远程工具。
  • 下载Visual Studio版本的远程工具的最新更新。 早期远程工具版本与更高版本的Visual Studio不兼容。 (例如,如果使用 Visual Studio 2019,请下载 Visual Studio 2019 远程工具的最新更新。在此方案中,请勿下载用于 Visual Studio 2022 的远程工具。
  • 下载与您要安装的计算机体系结构相同的远程工具。 例如,如果要在运行 x64 操作系统的远程计算机上调试 x86 应用程序,请安装 x64 远程工具。 若要在 ARM64 操作系统上调试 x86、ARM 或 x64 应用程序,请安装 ARM64 远程工具。
版本 链接 笔记
Visual Studio 2026 远程工具 与 Visual Studio 2022 及更高版本兼容。 下载与设备操作系统(x86、x64(AMD64)或 ARM64 匹配的版本。 在较旧版本的 Windows Server 上,请参阅 取消阻止文件下载 以获取有关下载远程工具的帮助。
Visual Studio 2022 远程工具 My.VisualStudio.com 提供了适用于 Visual Studio 2022 的远程工具。 如果系统提示,请加入免费的 Visual Studio Dev Essentials 计划,或使用Visual Studio订阅 ID 登录。 下载与设备操作系统(x86、x64(AMD64)或 ARM64 匹配的版本。 在较旧版本的 Windows Server 上,请参阅 取消阻止文件下载 以获取有关下载远程工具的帮助。
Visual Studio 2019 远程工具 My.VisualStudio.com 提供了适用于 Visual Studio 2019 的远程工具。 如果系统提示,请加入免费的 Visual Studio Dev Essentials 计划,或使用Visual Studio订阅 ID 登录。 下载与设备操作系统(x86、x64(AMD64)或 ARM64 匹配的版本。 在较旧版本的 Windows Server 上,请参阅 取消阻止文件下载 以获取有关下载远程工具的帮助。
Visual Studio 2017 远程工具 My.VisualStudio.com 提供了适用于 Visual Studio 2017 的远程工具。 如果系统提示,请加入免费的 Visual Studio Dev Essentials 计划,或使用Visual Studio订阅 ID 登录。 下载与设备操作系统(x86、x64(AMD64)或 ARM64 匹配的版本。 在 Windows Server 上,请参阅 取消阻止文件下载 以获取有关下载远程工具的帮助。
Visual Studio 2015 远程工具 My.VisualStudio.com 提供了用于 Visual Studio 2015 的远程工具。 如果系统提示,请加入免费的 Visual Studio Dev Essentials 计划,或使用Visual Studio订阅 ID 登录。 在 Windows Server 上,请参阅 取消阻止文件下载 以获取有关下载远程工具的帮助。
Visual Studio 2013 远程工具 Visual Studio 2013 文档中的下载页面
Visual Studio 2012 远程工具 Visual Studio 2012 文档中的下载页面
版本 链接 笔记
Visual Studio 2022 远程工具 与所有 Visual Studio 2022 版本兼容。 下载与设备操作系统(x86、x64(AMD64)或 ARM64 匹配的版本。 在较旧版本的 Windows Server 上,请参阅 取消阻止文件下载 以获取有关下载远程工具的帮助。
Visual Studio 2019 远程工具 My.VisualStudio.com 提供了适用于 Visual Studio 2019 的远程工具。 如果系统提示,请加入免费的 Visual Studio Dev Essentials 计划,或使用Visual Studio订阅 ID 登录。 下载与设备操作系统(x86、x64(AMD64)或 ARM64 匹配的版本。 在较旧版本的 Windows Server 上,请参阅 取消阻止文件下载 以获取有关下载远程工具的帮助。
Visual Studio 2017 远程工具 My.VisualStudio.com 提供了适用于 Visual Studio 2017 的远程工具。 如果系统提示,请加入免费的 Visual Studio Dev Essentials 计划,或使用Visual Studio订阅 ID 登录。 下载与设备操作系统(x86、x64(AMD64)或 ARM64 匹配的版本。 在 Windows Server 上,请参阅 取消阻止文件下载 以获取有关下载远程工具的帮助。
Visual Studio 2015 远程工具 My.VisualStudio.com 提供了用于 Visual Studio 2015 的远程工具。 如果系统提示,请加入免费的 Visual Studio Dev Essentials 计划,或使用Visual Studio订阅 ID 登录。 在 Windows Server 上,请参阅 取消阻止文件下载 以获取有关下载远程工具的帮助。
Visual Studio 2013 远程工具 Visual Studio 2013 文档中的下载页面
Visual Studio 2012 远程工具 Visual Studio 2012 文档中的下载页面

可以通过将 msvsmon.exe 复制到远程计算机而不是安装远程工具来运行远程调试器。 但是,仅当安装远程工具时,远程调试器配置向导(rdbgwiz.exe)才可用。 如果要将远程调试器作为服务运行,可能需要使用向导进行配置。 有关详细信息,请参阅 (可选)将远程调试器配置为服务。

备注

  • 若要在 ARM 设备上调试Windows 10或更高版本的应用,请使用 ARM64,该应用可用于最新版本的远程工具。
  • 若要在 Windows RT 设备上调试Windows 10应用,请使用 ARM(仅在 Visual Studio 2015 远程工具下载中可用)。
  • 若要在 ARM64 操作系统上调试 x64 应用,请运行随 ARM64 远程工具一起安装的 x64 msvsmon.exe。

提示

在某些情况下,从文件共享运行远程调试器可能最有效。 有关详细信息,请参阅 从文件共享运行远程调试器。

设置远程调试器

安装远程调试器后,请按照以下步骤作。

  1. 在远程计算机上,从“开始”菜单中找到并启动远程调试器。

    如果远程计算机上没有管理权限,请右键单击 远程调试器 应用,然后选择 以管理员身份运行。 否则,请正常启动它。

    如果计划附加到以管理员身份运行的进程,或者正在其他用户帐户(如 IIS)下运行,请右键单击 远程调试器 应用,然后选择 以管理员身份运行。 有关详细信息,请参阅 以管理员身份运行远程调试器。

  2. 首次启动远程调试器(或在配置远程调试之前),将显示 远程调试配置 向导。

    在大多数情况下,选择“ 配置远程调试”。

    远程调试器配置的屏幕截图。远程调试器配置

    在大多数情况下,请选择“下一步”,直到最后到达该向导的“配置 Windows 防火墙”页。

    远程调试器配置的屏幕截图。远程调试器配置

  3. 选择要在其中使用远程工具的至少一种网络类型。 如果计算机通过域连接,则必须选择第一项。 如果计算机通过工作组或家庭组连接,请根据需要选择第二项或第三项。

    接下来,选择 完成 以启动远程调试器。

  4. 配置完成后,将显示 远程调试器 窗口。

    远程调试器窗口的屏幕截图,远程调试器窗口

    远程调试器窗口的屏幕截图,远程调试器窗口

    远程调试器现在正在等待连接。 使用显示的服务器名称和端口号在Visual Studio中设置远程连接配置。

若要停止远程调试器,请选择“文件”“退出”。 可以从 开始 菜单或命令行重启它。

<Remote debugger installation directory>\msvsmon.exe

备注

如果需要为其他用户添加权限、更改远程调试器的身份验证模式或端口号,请参阅 配置远程调试器。

远程调试项目

调试器无法将 Visual C# 或Visual Basic桌面应用程序部署到远程计算机,但仍可以远程调试它们,如下所示。 以下过程假定要在名为 MJO-DL的计算机上对其进行调试,如下图所示。

  1. 创建名为 MyWpf 的WPF project。

    如果尝试远程调试 MAUI 应用而不是WPF,请参阅 Remote 在 Windows 上调试 .NET MAUI 应用

  2. 设置代码中易于访问的某个位置的断点。

    例如,可以在按钮处理程序中设置断点。 要执行此操作,请打开 MainWindow.xaml,然后从工具箱中添加一个 Button 控件,双击该按钮以打开其处理程序。

  3. 在Solution Explorer中,右键单击project,然后选择Properties

  4. 在 属性 页上,选择 “调试”选项卡。

    对于面向 .NET Core 或 .NET 5+ 的 C# 项目,从 Visual Studio 2022 开始,从 Debug 选项卡中选择 Debug 启动配置文件 UI,以配置远程调试的设置。

    在 C# 和 .NET 的 Visual Studio 项目属性中调试启动配置文件 UI 的截图。

    否则,对于 .NET Framework,可以直接在 Debug 选项卡中更改远程调试设置。

    “Visual Studio 项目属性”中的“调试”选项卡的屏幕截图。Use remote machine 属性设置为“MJO-DL: 4026”。

    对于面向 .NET Core 或 .NET 5+ 的 C# 项目,从 Visual Studio 2022 开始,从 Debug 选项卡中选择 Debug 启动配置文件 UI,以配置远程调试的设置。

    Visual Studio 项目属性中 C# 和 .NET 的调试启动配置文件 UI 截图。

    否则,对于 .NET Framework,可以直接在 Debug 选项卡中更改远程调试设置。

    “Visual Studio 项目属性”中的“调试”选项卡的截图。使用远程计算机属性设置为“MJO-DL:4026”。

  5. 确保 工作目录 文本框为空。

  6. 选择 使用远程计算机,然后在文本框中键入 你的计算机名:端口。 端口号显示在远程调试器窗口中。

    在此示例中,请使用:

    Visual Studio 2022 或更高版本上的 MJO-DL:4026

  7. 确保未选择 “启用本机代码调试 ”。

  8. 构建项目。

  9. 在远程计算机上创建与 Visual Studio 计算机上的 Debug 文件夹路径相同的文件夹:<source path>\MyWPF\MyWPF\bin\Debug

  10. 将刚从Visual Studio计算机生成的可执行文件复制到远程计算机上的新创建文件夹。

    谨慎

    不要对代码进行更改或重新生成(或者必须重复此步骤)。 复制到远程计算机的可执行文件必须与本地源和符号完全匹配。

    您可以手动复制项目,或者使用 XCopy、Robocopy、PowerShell 或其他选项。

  11. 确保远程调试器在目标计算机上运行(如果不是,请在 “开始”菜单中搜索 远程调试器)。 远程调试器窗口如下所示。

    Visual Studio远程调试器窗口的截图Remote 调试器窗口

    VS 2022 远程调试器窗口的屏幕截图。远程调试器窗口

  12. 在 Visual Studio 中,启动调试(Debug > 启动调试F5)。

  13. 如果系统提示,请输入网络凭据以连接到远程计算机。

    所需的凭据因网络的安全配置而异。 例如,在域计算机上,可以输入域名和密码。 在非域计算机上,可以输入计算机名称和有效的用户帐户名称,例如 MJO-DL\,以及正确的密码。

    应会看到WPF应用程序的主窗口在远程计算机上处于打开状态。

  14. 如有必要,请采取操作来命中断点。 你应看到该断点处于活动状态。 如果不是,则应用程序符号尚未加载。 如果重试不起作用,请在 了解符号文件和Visual Studio的符号设置 中获取有关加载符号的信息,并了解如何进行故障排除。

  15. 在Visual Studio计算机上,应会看到执行已在断点处停止。

    如果应用程序需要使用任何非代码文件,则需要将其包含在Visual Studio project中。 为其他文件创建project文件夹(在 Solution Explorer 中,单击 Add > New Folder)。 然后将文件添加到文件夹(在 Solution Explorer 中,单击 Add > 现有项,然后选择文件)。 在每个文件的“属性”页中,将“复制到输出目录”设置为“始终复制”。

远程调试 Windows 上的 .NET MAUI 应用

.NET MAUI 应用是部署时需要注册的打包应用,而不仅仅是复制到远程计算机。 若要远程调试,可以部署应用未打包的版本。

使用以下方法之一远程调试:

  • 使用 CLI 发布未打包的适用于 Windows 的 .NET MAUI 应用中所述的步骤将应用作为未打包的应用发布到远程设备,然后按照本文中的步骤进行远程调试。 (跳过复制应用的步骤。

  • 按照本文中的步骤,包括为项目创建调试启动配置文件的步骤。 开始调试之前,请手动编辑 launchSettings.json 文件,将 commandNameProject 值替换为 MsixPackage,如下所示。

    "Remote Profile": {
      "commandName": "MsixPackage",
      "remoteDebugEnabled": true,
      "remoteDebugMachine": "170.200.20.22",
      "authenticationMode": "None"
    }
    

    开始调试时,此方法首先部署应用解压缩的版本并启动它。

    备注

    将值更改为 后,无法在“调试启动配置文件”对话框中编辑 。

使用远程符号设置调试

应能够使用在Visual Studio计算机上生成的符号调试代码。 使用本地符号时,远程调试器的性能要好得多。 如果必须使用远程符号,则需要告知远程调试监视器在远程计算机上查找符号。

你可以使用以下 msvsmon 命令行开关将远程符号用于托管代码:

有关详细信息,请参阅远程调试帮助(在远程调试器窗口中按 F1,或单击 帮助 使用情况)。