如何在没有Visual Studio的计算机上设置远程调试

时间:2012-07-20 20:26:34

标签: c# .net visual-studio-2010 remote-debugging

有没有办法在没有安装Visual Studio的计算机上设置远程调试(Msvscom.exe)?

我想附加到VM上运行的服务,以便我可以调试代码中的问题。我以前做过这个,但两台机器都安装了VS.

开发框运行Visual Studio 2010 / Widnows 7.虚拟机运行的是Windows 7,没有Visual Studio。

6 个答案:

答案 0 :(得分:94)

我要复活这个,因为任何试图做到这一点的人都知道每次屁股都是完全痛苦的,而且每次可能的主机/远程系统组合都会稍微改变。

Visual Studio远程工具链接:

  1. Visual Studio 2010 remote debugger.(截至2016年10月21日工作)
  2. Visual Studio 2013 remote tools(截至2016年10月21日工作)
  3. Visual Studio 2015 remote tools x86 - Direct download link
  4. Visual Studio 2015 remote tools x64 - Direct download link
  5. Visual Studio Tools (Thanks Robo Burned)
  6. 这是我今天成功完成的设置:

    主机(开发)机器:
    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年的细齿梳查找下载,那么链接就在“没有人发现这个有用的“链接在顶部。如果没有,请点击上面的链接。

    在远程计算机上安装它并运行配置向导。我保留了向导的默认值:

    • “运行'Visual Studio .....'已被检查
    • 用户名是LocalSystem,密码为空
    • 仅允许本地网络上的计算机....

    在远程系统上运行远程调试器,您将看到

      

    Msvsmon启动了一个名为“username @ machinename ...”的新服务器

    在界面中。到现在为止还挺好。在远程计算机上运行该应用程序。在开发机器上,visual studio中的Ctrl + Alt + P将打开“Attach to Process”(它也在工具菜单下)。我得到一个关于我的开发机器的防火墙没有正确配置的弹出窗口,并被问到我是否想要允许连接等...显然是说。

    在限定符框中输入'username @ machinename'组合...按Refresh并祈祷一点。更加努力地祈祷,你应该看到远程机器上运行的进程列表。选择您的流程并附加到它。

    但是我的断点不起作用了?? 当然它们不...因为在远程机器上的应用程序所在的目录中使用断点会有太大意义。如果你足够幸运,你会收到关于断点缓存的警告,并显示一个带路径的对话框。

    对话框提到了相对于远程计算机它是正确的。它在说谎。它与远程计算机无关,只是它强迫您在那里创建一个与当前用户同名的全新用户,因为Microsoft。要使断点正常工作,请按照开发计算机上的路径(可在工具>选项>调试>符号:此目录中的缓存符号中自定义)进行操作,并将应用程序的.pdb文件复制到该目录。除非有自动选项,否则您必须将它们复制到每个新构建中;我没有检查,因为我还没有停止庆祝我的远程调试成功。

    现在一切都应该有效。

    我希望这可以帮助某人节省时间让人感到愤怒。多年来我一直试图让它在不同的机器上工作。

答案 1 :(得分:16)

肯定有。
您可以在不安装visual studio的情况下安装msvsmon 我自己在几台机器上做过这件事 棘手的部分是授权 - 在本地机器上运行VS的用户需要远程机器上的特殊权限 ms有一些文章解释详情 - http://msdn.microsoft.com/en-us/library/bt727f1t.aspx

答案 2 :(得分:7)

更新: 这里是2017年的链接,这些链接也不容易找到。

Visual Studio Remote Tools Links x64 direct link

Visual Studio Remote Tools Links x86 direct link

答案 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)

还有另一种我更喜欢的方式(如果您具有快速的互联网连接)。

您无需在远程桌面连接上下载或安装任何内容。

  1. 通过远程桌面连接进行连接时,您可以共享磁盘C:

    Remote Dekstop - Share Local Resources

  2. 在远程桌面上转到位置(取决于您的本地位置)

    \\tsclient\C\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\Remote Debugger\x64
    
  3. (可选)在桌面上创建文件夹或msvsmon.exe的快捷方式

  4. 通过共享磁盘从本地磁盘远程运行它。 (开始可能需要几秒钟,具体取决于您的连接质量)

选项2:将Remote Debugger \ x64或x86文件夹复制到远程位置并使用它。

答案 5 :(得分:0)

我能够使其与asp.net core 2.1一起使用,与上述答案的唯一区别是您附加的进程是dotnet.exe。