[Addin]OnConnection的执行时机

近日移植了自己写的两个VS2005的外接程序到VS2008。因为有部分程序还要用VS2005维护,自己的工具两边都用上真舒服。突然想既然VS2008也能创建VS2005也能使用的外接程序,如果只用一份代码不是很好吗?

于是在统一代码的过程中,我发现VS2005的菜单项一直没有变化,似乎完全没有理会OnConnection函数。为了看看外接程序究竟在VS2005下的运行过程是怎样的,我想到了修改调试参数,在VS2008调用VS2005来调试。

我修改了项目的调试属性中“启动外部程序”,改用VS2005的Common7\IDE\devenv.exe时,发现调试属性里有一个“命令行参数”
/resetaddin DotnetkTools.Connect

难道,每次调试前都重置某个外部程序的连接?测试结果验证了我的想法。

这样看来,OnConnection函数并非MSDN文档所说的“因为每次加载外接程序时都会调用 OnConnection 方法....”,而是执行一次后,IDE会记下,以后IDE启动时就不会执行这个组件的Connect函数了。当然我们也可以手工让IDE来执行这个过程。方法就是用命令行来启动IDE
"E:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe" /resetaddin "DotnetkTools.Connect"

你可能感兴趣的:(Connection)