代码之家  ›  专栏  ›  技术社区  ›  Harald Coppoolse

如何在远程计算机上启动调试过程?

  •  14
  • Harald Coppoolse  · 技术社区  · 11 年前

    我正在为用C#编写的标准Windows窗体应用程序设置Visual studio远程调试会话。

    互联网上有很多关于如何设置远程计算机和MSVCMON.EXE的故事,但我找不到任何关于在我的计算机上做什么以确保当我按下START DEBUGGING时在远程计算机上调试我的程序的故事。

    那么,我应该做些什么才能实现远程调试呢?

    1 回复  |  直到 6 年前
        1
  •  19
  •   Peter Mortensen icecrime    7 年前

    经过一些研究,我找到了如何做到这一点,即使你在一家有很多防火墙等安全问题的公司工作。我唯一需要it部门提供的是两台计算机的管理员权限。

    先决条件:

    • 我在Visual Studio 2012 Professional中使用了这种方法,几年后在Visual Studio 2013 Ultimate中再次测试了它。
    • 本地计算机和远程计算机都在同一个域中。
    • 我以域成员身份登录。

    如何做到:

    • 在远程计算机上:使用您的普通帐户登录。如果这是第一次为您创建新环境。
    • 在远程计算机上:确保您具有管理员权限。
    • 在远程计算机上:启用远程桌面。
    • 在本地计算机上找到Visual Studio的远程调试文件夹。
    • 在我的计算机上,这是:“C:\Program Files(x86)\Microsoft Visual Studio 11.0\Common7\IDE\Remote Debugger”
    • 将此文件夹复制到远程计算机上类似的(可查找的)文件夹中。
    • 在远程计算机上,从复制的文件夹中运行MsvsMon.exe。
    • 第一次它会进行一些安装。让它改变防火墙。
    • 使用工具选项-Windows身份验证
    • 使用“工具权限”可确保您是具有调试权限的用户。

    msvsmon.exe程序现在应该正在等待新的连接。服务器的名称类似于“远程计算机名称”:例如“端口号” Prototype1:4016 .

    现在,在将使用Visual Studio开发程序的本地计算机上,执行以下操作:

    • 打开Visual Studio,然后加载解决方案。
    • 如果还没有这样做:设置启动项目(右键单击启动项目并选择启动作为启动项目。
    • 启动配置管理器(单击带有调试/发布选择的组合框旁边的箭头,然后选择配置管理器…)。
    • 在配置管理器的“活动解决方案配置”中,选择“新建”。给新配置一个合适的名称,并使其成为Debug的副本(可能)。
    • 为远程调试创建代码时,您必须选择新的配置。
    • 此新配置的某些设置需要更改。例如,您必须确保生成后的结果代码在远程计算机上。最简单的方法是双击启动项目的财产并选择构建选项卡。将输出路径从bin\debug更改为远程计算机上需要代码的位置。例如: \\Prototype1\Users\Harald\Documents\CameraTestProgram\ .
    • 在相同的财产表单中,在“调试”选项卡上,选择调试会话应在哪台计算机上进行:检查:使用远程计算机,并填写与MsvsMon.exe中相同的名称。在我的示例中:键入 原型1:4016 .
    • 在Visual Studio中生成代码,设置断点并开始调试。
    • 使用远程桌面连接来控制windows窗体。

    如果您想调试用C#编写的普通Windows窗体应用程序,则此方法有效。我检测到,即使你使用了不安全的代码,它也能工作。不过,如果您的程序包含C++代码,会有一些警告,但它们可以被忽略。

    Microsoft对此的链接(2013年10月生效,2015年8月仍然有效):