14

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

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

那么我应该怎么做才能使远程调试成为可能呢?

4

1 回答 1

19

经过一些研究,我发现了如何做到这一点,即使您在一家存在很多防火墙等安全问题的公司工作。我唯一需要 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 中相同的名称。在我的示例中:键入Prototype1:4016
  • 在 Visual Studio 中构建代码、设置断点并开始调试。
  • 使用远程桌面连接来控制您的 Windows 窗体。

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

微软为此提供的链接(2013 年 10 月工作,仍在 2015 年 8 月工作):

于 2013-10-24T10:20:53.210 回答