Visual Studio - 附加进程快捷方式

71

当我想要调试时,我必须执行 调试(Debug)->附加到进程(Attach to Process) -> 在列表中查找需要调试的进程 -> 附加(Attach)。

我想知道是否可以创建某种快捷方式来帮我完成这个过程?


2
如果你和我一样遇到了这种情况,需要使用相同的进程集重复执行“附加到进程”操作,请尝试使用 resurrect extension。它帮助了我,所以我将其发布出来。 - jwaliszko
12个回答

86
快捷键为Ctrl+Alt+P,适用于Visual Studio 2005及以上版本

请注意,这个默认会被 ReSharper 设置劫持! - actual_kangaroo
@EruPenkman 不是使用Visual Studio方案(截至ReSharper 9和Visual Studio 2013) - Gabriel
2
我一直在使用ALT+D,P。这样更快。 - blockloop

23

最简单的方法是编写一个宏,找到你想要定位的DTE.LocalProcess并自动附加。例如:

Public Sub AttachShortcut()
  For Each proc In DTE.Debugger.LocalProcesses 
    If proc.Name = "what you're looking for" Then
      proc.Attach()
      Exit Sub
    End IF
  Next
End Sub

注意:这个Stack Overflow问题与一个你可能会发现有用的样例相关


8
宏在Visual Studio 2012中已不再可用。有关更多细节,请参见http://www.infoq.com/news/2011/10/VS-Macros/。 - Kjetil Klaussen
4
您可以使用Visual Commander在VS 2012/2013中重复使用宏代码。http://vlasovstudio.com/visual-commander/ - Sergey Vlasov
2
John Rea的下面的回答应该被标记为新答案,或者至少将其信息包含在针对使用Visual Studio 2012及更高版本的人的答案中。ReAttach和AttachTo这两个插件是很好的例子。 - Ultroman the Tacoman
我写了一篇关于如何使用Visual Commander扩展创建快捷方式的博客文章:http://blog.markvincze.com/attach-to-process-shortcut-in-visual-studio/ - Mark Vincze
现在应该将其踩下来。Ctrl + Alt + P是快捷键,正如Rajesh的答案中所说。 - Jaywalker

16

附加到进程按钮

在Visual Studio 2013、2015、2017、2019和2022中启用“附加到进程”工具栏按钮:

  1. 右键单击任何工具栏,然后单击“自定义...”
  2. 点击“命令”选项卡
  3. 点击“工具栏”单选按钮
  4. 从下拉列表中选择您想要出现按钮的工具栏
  5. 点击“添加命令...”按钮
  6. 从左侧的类别列表中选择“调试”
  7. 从右侧的命令列表中选择“附加到进程”,然后单击“确定”。按钮将出现在您选择的工具栏上。
  8. 可选地,使用右侧的“上移”和“下移”按钮将新按钮移动到工具栏内所需的位置。我把它放在调试按钮之后。

14

编写宏是一种选择,但它本身无法推断要附加到哪个进程。

另一个好的解决方案是将 "附加到进程" 命令映射到快捷键:

(工具 -> 选项 -> 环境 -> 键盘,输入附加,如我在此示例中所做的,并选择一个快捷键):

输入图像说明


是的。这将打开“附加到进程”窗口。上述宏更进一步。它找到进程并进行附加。 - dev.e.loper
我不确定他想要哪个进程。最近开始越来越喜欢宏了 :) - lysergic-acid
它应该已经内置了 Ctrl+Alt+P 快捷键。如果您选择不同的键盘设置,则可能会有所不同。 - user3285954

14
您可以使用Alt键快捷方式ALT+DP通过调试菜单启动“附加到进程”窗口。

一旦在那里,您可以使用键盘搜索可用进程列表(例如,如果要附加到IIS应用程序池,则输入“w3wp”)。


13

这个答案适用于Visual Studio 2010

我喜欢在我的调试工具栏上有按钮来做这件事

https://gist.github.com/1406827

该代码片段包含了一种附加到IIS(w3wp.exe)或ASP(aspnet_wp.exe)以及nunit(nunit-agent.exe)的方法。其中包括如何将宏添加到调试工具栏的说明。


2
我简直不敢相信这个答案还没有得到更多的投票。步骤非常容易跟随,而且完美地解决了问题。谢谢! - Adrian Schmidt
Adrian,很高兴它对你有用!当我在做.NET工作时,这为我节省了大量时间。 - Brian Wigginton
2
在VS2012中没有宏,所以你的回答相当无用。 - DATEx2
DotNetWise:谢谢,我已经更新了答案以反映这一点。 - Brian Wigginton
Github上的链接并没有解释如何实际安装该产品,它不够用户友好。我不确定该怎么处理那段代码。 - P.Brian.Mackey
@P.Brian.Mackey 文件顶部有安装宏的说明。不过我好多年没用VS了,也许我错过了一些关键步骤?祝你好运。 - Brian Wigginton

13

这是对我有效的答案。我不确定那些建议使用键盘快捷方式的答案在做什么,因为那不是问题所问的。干杯! - AStopher
VS 2019 也得到支持。 - Valera Scherbakov
我在 https://marketplace.visualstudio.com/items?itemName=ErlandR.ReAttach 上没有看到 VS2019 支持,你确定吗? - Mohammed Dawood Ansari
@MohammedDawoodAnsari 我可以看到“适用于Visual Studio 2017、2019”。然而,在VS 2019中我不再使用它。在VS 2019中有一个内置选项:调试 -> 重新附加到进程。它在你已经在给定的VS会话中附加到任何进程之后变得可用。 - Dawid Sibiński
是的,你说得对。VS 2019内置了重新附加功能,谢谢。 - Mohammed Dawood Ansari

12

我使用这个内置的“快捷方式”:

ALT+D, P, W, ENTER

这会打开调试菜单,选择“附加到进程”,滚动到w3wp.exe并进行附加。

虽然很长,但应该可以在多个Visual Studio版本中使用,无需设置,无论是否使用resharper,当运行多个IIS进程时也可以选择要附加的进程。


如果您能够设置所有网站重用同一个应用程序池,那么只会有一个w3p进程。 - drzaus
你如何建立一个快捷方式? - Aximili

7

现在,使用插件可能是更好的方法。我使用一个叫做“Attach to anything”的插件,你可以在Visual Studio 2012中找到它。打开“工具”->“扩展和更新”,搜索“attach”,并安装“attach to anything”。

另请参见:Automate "Attach to Process" in Visual Studio 2012


2
这应该被标记为新答案,因为宏在2012年被移除了。附加组件ReAttach和AttachTo是很好的例子。 - Ultroman the Tacoman

4

Alt+Shift+P可以重新附加上一次已经附加的进程。

在Visual Studio 2017中,这对我很有效。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接