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


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

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

    远程调试器组件

    有关远程调试通用 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. 第一次启动远程调试器 (或之前已配置),远程调试配置对话框随即出现。

      远程调试器配置

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

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

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

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

      远程调试器窗口

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

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

    cmd
    <Remote debugger installation directory>msvsmon.exe
    

     备注

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

    远程调试项目

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

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

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

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

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

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

      RemoteDebuggerCSharp

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

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

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

    8. 生成项目。

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

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

       注意

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

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

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

      RemoteDebuggerWindow

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

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

      所需的凭据会有所不同,具体取决于网络的安全配置。 例如,在域的计算机,可以输入你的域名和密码。 在非域计算机上,你可能会输入计算机名称和有效的用户帐户名称,如MJO-DL ame@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年中

  • 相关阅读:
    CSS Sprite
    使用float和display:block将内联元素转换成块元素的不同点
    [POJ 1185] 炮兵阵地
    [POJ 1947] Rebuilding Roads
    [HDU 1561] The more, The Better
    [HDU 1011] Starship Troopers
    [POJ 1155] TELE
    [HDU 2196] Computer
    [HDU 1520] Anniversary party
    [HDU 5029] Relief grain
  • 原文地址:https://www.cnblogs.com/144823836yj/p/10515506.html
Copyright © 2020-2023  润新知