背景
调试的过程中,有时会碰到要 Attach 到某个进程的情况。遇到这种情况,一般来说就是 Alt+D,P 呼出 AttachToProcess 界面,然后找到进程 Attach。今天发现一个方法,可以一键直接开启 Attach 到指定的进程,而且具有一定的扩展性。本着好东西大家一起分享的原则,现记录如下。
原理
这个方法是利用 VS 的宏和库,将指令脚本化,类似 Excel 里的宏。通过引入VS的扩展 Visual Commander 执行相应的命令。
步骤
VS 菜单栏-> Extensions -> Manage Extensions
搜 Visual Commander(下称 VCmd),先把它下下来
要运行的内容,按照我们的需求,就是找到指定的进程并 Attach 上去。我这里 Attach 的是 AutomationTool
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
using EnvDTE; using EnvDTE80; public class C : VisualCommanderExt.ICommand { public void Run(EnvDTE80.DTE2 DTE, Microsoft.VisualStudio.Shell.Package package) { foreach(Process2 proc in DTE.Debugger.LocalProcesses) { if(proc.Name.ToString().Contains("AutomationToolLauncher.exe")) { proc.Attach2(""); return; } } System.Windows.MessageBox.Show("AutomationToolLauncher not found."); } }
记得保存。
这个时候已经可以运行了,但是为了一键 Attach,我们得把它绑定到一个按键上 菜单栏找
Tools -> Customize -> Commands
标签下,选择ToolBar -> Standard
,这里看个人习惯,我放到了工具栏上 Standard 栏,右侧Add Command
找到要执行的 Command
Extensions 目录下找到相应的 Command,不记得是第几个可以在 VCmd 的 Command 编辑界面看看左上角
最后
其他的一些功能和样例可以参考 Extensions -> VCmd -> Command Examples/ Extension Examples 或者前往 visual-commander