VS2017远程调试C#或 Visual Studio 中的 Visual Basic 项目

时间:2021-09-26 01:27:21

来源:远程调试C#或 Visual Studio 中的 Visual Basic 项目

若要调试已部署在另一台计算机的 Visual Studio 应用程序,安装和在其中部署您的应用程序的计算机上运行远程工具、 将项目配置为从 Visual Studio 中,连接到远程计算机,然后运行应用。

VS2017远程调试C#或 Visual Studio 中的 Visual Basic 项目

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

要求

远程调试器是在 Windows 7 上受支持和更高版本 (不 phone) 和从 Windows Server 2008 Service Pack 2 的 Windows Server 的版本。 有关要求的完整列表,请参阅要求

备注

不支持调试通过代理连接的两台计算机之间。 调试通过高延迟或低带宽连接,例如拨号 Internet,或通过 Internet 跨国家/地区不建议并可能会失败或很令人无法接受慢。

下载和安装远程工具

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

  • 下载最新版本的 Visual Studio 远程工具。 最新的远程工具版本兼容使用早期的 Visual Studio 版本,但早期的远程工具版本不是与更高版本的 Visual Studio 版本兼容。
  • 下载的远程工具使用相同的体系结构在计算机安装它们。 例如,如果你想要调试远程计算机运行 64 位操作系统上的 32 位应用程序,安装 64 位远程工具。
Version 链接 说明
Visual Studio 2017(最新版本) 远程工具 与所有 Visual Studio 2017 版本兼容。 下载匹配您设备的操作系统 (x 86、 x64、 或 ARM64) 的版本。 在 Windows 服务器上,请参阅取消阻止文件下载下载远程工具的帮助。
Visual Studio 2015 远程工具 Visual Studio 2015 远程工具可从 My.VisualStudio.com。 如果系统提示,请加入免费Visual Studio Dev Essentials程序或使用 Visual Studio 订阅 id。 登录 在 Windows 服务器上,请参阅取消阻止文件下载下载远程工具的帮助。
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 远程工具下载中可用。

提示

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

设置远程调试器

  1. 在远程计算机上查找和启动远程调试器从启动菜单。

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

    可能有不同版本的msvsmon.exex64, x32,或其他文件夹。 请确保启动要调试您的应用程序所需的版本。

  2. 第一次启动远程调试器 (或之前已配置),远程调试配置对话框随即出现。

    VS2017远程调试C#或 Visual Studio 中的 Visual Basic 项目

  3. 如果 Windows Web 服务 API 未安装,这种情况发生,仅在 Windows Server 2008 R2 上,选择安装按钮。

  4. 选择你想要在使用远程工具的至少一个网络类型。 如果这些计算机通过域连接,则必须选择第一项。如果这些计算机通过工作组或家庭组连接,选择相应的第二个或第三个项。

  5. 选择配置远程调试,配置防火墙并启动远程调试器。

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

    VS2017远程调试C#或 Visual Studio 中的 Visual Basic 项目

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

若要停止远程调试器,请选择文件 > 退出。 您可以重新启动它从启动菜单中,或从命令行:

cmd复制
<Remote debugger installation directory>\msvsmon.exe

备注

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

远程调试项目

调试器不能将 Visual C# 或 Visual Basic 桌面应用程序部署到远程计算机,但你仍然可以按如下所示方法远程调试它们。 以下过程假设你想要在名为的计算机上调试它MJO DL下, 图中所示。

  1. 创建一个名为“MyWpf”的 WPF 项目。

  2. 在代码中的某个容易到达的地方设置断点。

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

  3. 在解决方案资源管理器,右键单击该项目并选择属性。

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

    VS2017远程调试C#或 Visual Studio 中的 Visual Basic 项目

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

  6. 选择使用远程计算机,然后键入MJO-DL:4022在文本框中。 (4022 是远程调试器窗口中显示的端口号。 端口号递增每个版本的 Visual Studio 中的 2)。

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

  8. 生成项目。

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

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

    注意

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

    可以手动复制该项目,使用 Xcopy、 Robocopy、 Powershell 或其他选项。

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

    VS2017远程调试C#或 Visual Studio 中的 Visual Basic 项目

  12. 在 Visual Studio 中,开始调试(单击“调试”>“启动调试”,或按 F5)。

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

    所需的凭据会有所不同,具体取决于网络的安全配置。 例如,在域的计算机,可以输入你的域名和密码。 在非域计算机上,你可能会输入计算机名称和有效的用户帐户名称,如MJO-DL\name@something.com,以及正确的密码。

    应看到远程计算机上打开了 WPF 应用程序的主窗口。

  14. 如果有必要,请采取措施以命中断点。 你应看到该断点处于活动状态。 如果不是,则尚未加载应用程序的符号。 重试,并且如果这不起作用,获取有关加载符号的信息和如何解决在这些问题了解符号文件和 Visual Studio 的符号设置

  15. 在 Visual Studio 机器上,你应看到执行在断点处停止。

    如果有需要应用程序使用任何非代码文件,您需要将其包含在 Visual Studio 项目。 为其他文件创建项目文件夹(在“解决方案资源管理器”中,单击“添加”>“新建文件夹”)。 然后将文件添加到文件夹(在“解决方案资源管理器”,单击“添加”>“现有项目”,然后选择文件)。 在每个文件的“属性”页中,将“复制到输出目录”设置为“始终复制”。

使用远程符号设置调试

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

从 Visual Studio 2013 Update 2 开始,你可以使用以下 msvsmon 命令行开关以托管代码中使用远程符号: Msvsmon /FallbackLoadRemoteManagedPdbs

有关详细信息,请参阅远程调试帮助 (按F1中的远程调试器窗口中或单击帮助 > 用法)。 你可以找到详细信息在.NET 远程符号加载更改 Visual Studio 2012 和 2013年中