Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 通过powershell将调试器附加到多个进程_Visual Studio_Debugging_Powershell_Visual Studio 2013_Powershell 4.0 - Fatal编程技术网

Visual studio 通过powershell将调试器附加到多个进程

Visual studio 通过powershell将调试器附加到多个进程,visual-studio,debugging,powershell,visual-studio-2013,powershell-4.0,Visual Studio,Debugging,Powershell,Visual Studio 2013,Powershell 4.0,我有几个进程正在运行,我想通过powershell连接到VS调试器 目前,我可以这样做:Get Process NServiceBus.Host | Debug Process 如果只有一个进程,则系统会提示我选择正确的调试器,我可以继续 但是,如果有多个进程,当系统提示我为第二个进程选择调试器时,我无法选择当前正在运行的Visual Studio实例 如何使用powershell将多个进程附加到正在运行的visual studio实例以进行调试?获取活动的visual studio实例 $dt

我有几个进程正在运行,我想通过powershell连接到VS调试器

目前,我可以这样做:
Get Process NServiceBus.Host | Debug Process

如果只有一个进程,则系统会提示我选择正确的调试器,我可以继续

但是,如果有多个进程,当系统提示我为第二个进程选择调试器时,我无法选择当前正在运行的Visual Studio实例


如何使用powershell将多个进程附加到正在运行的visual studio实例以进行调试?

获取活动的visual studio实例

$dte=[System.Runtime.InteropServices.Marshal]::GetActiveObject(“VisualStudio.dte”)

。。。并使其连接到一组进程

($dte.debugger.localprocesss |其中Name-Match“proc(one | two.exe”).Attach()


。。。如果每次连接的时间过长,则可能需要延迟,否则visual studio会很忙并拒绝呼叫。

谢谢,softwarebear。我无法使您的确切命令行正常工作,但在添加花括号并在管理员Powershell提示符下运行后,此命令行成功地将调试器连接到所有正在运行的w3wp.exe进程:

$dte = [System.Runtime.InteropServices.Marshal]::GetActiveObject('VisualStudio.DTE')
$dte.Debugger.LocalProcesses | Where {$_.Name -like '*w3wp.exe'} | %{$_.Attach()}

理想情况下,这可以通过击键在Visual Studio中执行,但Visual Studio不支持没有外接程序的Powershell,并且宏编辑器在VS2010之后被删除。接下来,我尝试将此脚本块作为“外部工具”添加到powershell.exe命令行中,但它没有附加调试器,也没有生成任何输出

我从未知道或尝试将多个进程附加到VS调试器。我只是觉得这是不可能的。@JohnPeters我每天都会通过VisualStudio调试>附加到进程来做几次。哇!VS允许一次调试多个进程?@JohnPeters是的。一种方法是,如果您在解决方案级别使用“多个启动项目”并开始调试(F5),那么您正在调试多个进程。感谢您的提示,但不知何故,它无法正常工作。我得到了这个错误:+($dte.debugger.localprocesses |其中第二行需要是这样的……我想我在运行它时只找到了一个进程……怀疑不是零个或多个进程会导致您看到的etalon11的错误。$dte.debugger.localprocesses | Where Name-Match“proc(one | two).exe”{$.Attach()}用于VisualStudio2019的GetActiveObject(“VisualStudio.DTE.16.0”)