有没有办法在没有安装Visual Studio的计算机上设置远程调试(Msvscom.exe)?
我想附加到VM上运行的服务,以便我可以调试代码中的问题。我以前做过这个,但两台机器都安装了VS.
开发框运行Visual Studio 2010 / Widnows 7.虚拟机运行的是Windows 7,没有Visual Studio。
答案 0 :(得分:94)
我要复活这个,因为任何试图做到这一点的人都知道每次屁股都是完全痛苦的,而且每次可能的主机/远程系统组合都会稍微改变。
这是我今天成功完成的设置:
主机(开发)机器:
Windows 7旗舰版SP1 x64。运行Visual Studio 2010,.NET Framework 4。
远程计算机:
工业/工厂车间PC运行Windows Embedded Standard 32位。它的外观/感觉与Windows 7完全一样。运行SP1。未安装Visual Studio。有.NET框架4。
网络强>
两台机器都在同一个子网上。我通过RDP访问远程计算机并以这种方式运行我的应用程序。
Microsoft-Proprietary Follicle-Deterioration Implementation
记下您的开发机器的用户名和密码。出于某种原因,您必须在远程计算机上创建完全相同的用户名和密码。因为微软。
我是怎么做到的:
我从@sJhonny提供的链接下载了Visual Studio 2010远程调试器。我不得不关闭那篇文章中的Visual Studio 2013,直到2010年。如果你想用2010年的细齿梳查找下载,那么链接就在“没有人发现这个有用的“链接在顶部。如果没有,请点击上面的链接。
在远程计算机上安装它并运行配置向导。我保留了向导的默认值:
在远程系统上运行远程调试器,您将看到
Msvsmon启动了一个名为“username @ machinename ...”的新服务器
在界面中。到现在为止还挺好。在远程计算机上运行该应用程序。在开发机器上,visual studio中的Ctrl + Alt + P将打开“Attach to Process”(它也在工具菜单下)。我得到一个关于我的开发机器的防火墙没有正确配置的弹出窗口,并被问到我是否想要允许连接等...显然是说。
在限定符框中输入'username @ machinename'组合...按Refresh并祈祷一点。更加努力地祈祷,你应该看到远程机器上运行的进程列表。选择您的流程并附加到它。
但是我的断点不起作用了?? 当然它们不...因为在远程机器上的应用程序所在的目录中使用断点会有太大意义。如果你足够幸运,你会收到关于断点缓存的警告,并显示一个带路径的对话框。
对话框提到了相对于远程计算机它是正确的。它在说谎。它与远程计算机无关,只是它强迫您在那里创建一个与当前用户同名的全新用户,因为Microsoft。要使断点正常工作,请按照开发计算机上的路径(可在工具>选项>调试>符号:此目录中的缓存符号中自定义)进行操作,并将应用程序的.pdb文件复制到该目录。除非有自动选项,否则您必须将它们复制到每个新构建中;我没有检查,因为我还没有停止庆祝我的远程调试成功。
现在一切都应该有效。
我希望这可以帮助某人节省时间让人感到愤怒。多年来我一直试图让它在不同的机器上工作。
答案 1 :(得分:16)
答案 2 :(得分:7)
更新: 这里是2017年的链接,这些链接也不容易找到。
答案 3 :(得分:2)
取自: how-to-implement-remote-debugging-in-visual-studio-2005
让我们考虑一个清楚地了解这种情况的例子。莫莉 Clark和Adam Barr都是Adventure Works的员工。冒险 Works有一个名为adventure-works.com的Microsoft Windows NT域。 亚当在使用莫莉写的一些软件时遇到了麻烦。莫莉 想在Adam的电脑上调试这个软件。莫莉和亚当 请按照以下步骤操作:
- Adam在他的计算机上没有远程调试器。为了设置远程调试器,Molly决定分享该程序 Files \ Microsoft Visual Studio 8 \ Common7 \ IDE \ Remote Debugger目录 在她的电脑上。她创建了一个名为Remote。的文件共享。
- Adam运行\ MollyComputerName \ Remote \ x86 \ Msvsmon.exe。
- 远程调试器启动后,Adam单击“工具”菜单上的“权限”,以使用“权限”配置远程调试器 对话框。他允许Molly调试。
注意 Adam还可以通过在远程调试器启动时传递/ allow选项来配置远程调试器。- Molly启动Visual Studio 2005。
- 要打开“附加到流程”对话框,Molly会在“工具”菜单上单击“附加到流程”。
- Molly通过在限定符框中输入adventure-works.com \ Adam @ AdamComputerName连接到Adam的计算机。
- 在“可用进程”下,Molly选择其应用程序正在使用的工作进程,然后单击“附加”。
- Molly打开浏览器并提供远程应用程序的URL。执行将在断点所在的位置停止 申请。
答案 4 :(得分:1)
还有另一种我更喜欢的方式(如果您具有快速的互联网连接)。
您无需在远程桌面连接上下载或安装任何内容。
通过远程桌面连接进行连接时,您可以共享磁盘C:
。
在远程桌面上转到位置(取决于您的本地位置)
\\tsclient\C\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\Remote Debugger\x64
(可选)在桌面上创建文件夹或msvsmon.exe的快捷方式
选项2:将Remote Debugger \ x64或x86文件夹复制到远程位置并使用它。
答案 5 :(得分:0)
我能够使其与asp.net core 2.1一起使用,与上述答案的唯一区别是您附加的进程是dotnet.exe。