当我想调试时,我必须执行Debug-> Attach to Process->在列表中查找一个进程-> Attach。
我想知道是否可以为我创建某种快捷方式来执行此操作?
Answers:
最简单的方法是编写一个宏,该宏查找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
注意:此堆栈溢出问题是相关的,并且有一个示例您可能会发现有用
编写宏是一种选择,但是它不能推断要附加到哪个进程。
另一个不错的解决方案是将“附加到进程”命令映射到快捷键:
(工具->选项->环境->键盘,像本例中那样键入Attach,然后选择快捷键):
此答案适用于Visual Studio 2010。
我喜欢在调试工具栏上有按钮来执行此操作
https://gist.github.com/1406827
要点包含一种附加到IIS(w3wp.exe)或ASP(aspnet_wp.exe)以及nunit(nunit-agent.exe)的方法。包括有关如何将宏添加到调试工具栏的说明。
对于Visual Studio 2017、2019,有一个ReAttach扩展可用。非常便利。
Addins可能是现在更好的方法。我用一个叫做“附加到任何东西”的东西。您可以在Visual Studio 2012中找到它们。转到“工具”->“扩展和更新”,搜索“附加”,然后安装“附加至任何内容”。
就我个人而言,我更喜欢按照此线程中的建议 使用Debugger.Launch(),因为它不需要引用DTE(特定于IDE,并且必须明确引用到要使用的项目中)
w3wp.exe
,它会跳转到这一点,那么Enter附着。在撰写本文时,当前版本是VS2015。
继续编辑/扩展这个答案:-)