有没有办法在没有安装 Visual Studio 的机器上设置远程调试 (Msvscom.exe)?
我想附加到 VM 上运行的服务,以便我可以调试代码中的问题。我以前这样做过,但两台机器都安装了 VS。
Dev box 运行 Visual Studio 2010/Windows 7。VM 运行 Windows 7,没有 Visual Studio。
最佳答案
我将重新启动它,因为任何尝试这样做的人都知道每次都非常痛苦,并且随着您可以拥有的主机/远程系统的每种可能组合,它都会略有变化。
Visual Studio 远程工具链接:
这是我今天成功的设置:
主机(开发)机器:
Windows 7 旗舰版 SP1 x64。运行 Visual Studio 2010、.NET Framework 4。
远程机器:
运行 Windows Embedded Standard 32 位的工业/工厂车间 PC。它的外观/感觉与 Windows 7 完全一样。运行 SP1。未安装 Visual Studio。具有 .NET 框架 4。
网络:
两台机器都在同一个子网上。我通过 RDP 访问远程机器并以这种方式运行我的应用程序。
Microsoft 专有的毛囊退化实现:
记下您的开发机器的用户名和密码。出于某种原因,您必须在远程计算机上创建完全相同的用户名和密码。因为微软。
我是如何做到的:
我从@sJhonny 提供的链接下载了 Visual Studio 2010 远程调试器。我不得不在那篇文章中关闭 Visual Studio 2013 并切换到 2010 年。如果您想用细齿梳浏览 2010 年的文章以找到下载,链接就在“没有人找到这个”旁边有用”链接在顶部。如果没有,只需按照我上面的链接。
在远程机器上安装它并运行配置向导。我保留了向导的默认值:
在远程系统上运行远程调试器,你会看到
Msvsmon started a new server named 'username@machinename...'
在界面中。到现在为止还挺好。在远程机器上运行应用程序。在开发机器上,visual studio 中的 Ctrl+Alt+P 将打开“附加到进程”(它也在工具菜单下)。我收到一个关于我的开发机器的防火墙没有正确配置的弹出窗口,并被问到我是否想允许连接等......显然说是。
在限定符框中输入“用户名@机器名”组合...按刷新并祈祷一下。多多祈祷,你应该会看到远程机器上运行的进程列表。选择您的流程并附加到它。
但是我的断点不起作用!? 他们当然不会……因为在与远程机器上的应用程序相同的目录中使用断点会很有意义。如果你足够幸运,你会收到关于断点缓存的警告并显示一个带有路径的对话框。
该对话框提到它相对于远程机器是正确的。这是在说谎。它与远程机器无关,只是它迫使您在那里创建一个与当前用户同名的全新用户,因为 Microsoft。要使断点起作用,请按照开发机器上的路径(可在工具>选项>调试>符号:此目录中的缓存符号中自定义)并将应用程序的 .pdb 文件复制到该目录。您必须在每个新构建中复制它们,除非有自动执行的选项;我还没有检查,因为我还没有停止庆祝我的远程调试成功。
现在一切都应该工作了。
我希望这能帮助别人节省我多年来试图让它在不同机器上工作所忍受的令人眼花缭乱的愤怒时间。
关于c# - 如何在没有 Visual Studio 的机器上设置远程调试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11586500/