Visual Studio 2008插件/加载项开发 - 入门

and*_*ndy 7 plugins extensibility visual-studio-addins visual-studio

嘿伙计们,关于这个stackoverflow问题,我将如何创建自己的Visual Studio 2008插件.

我在MSDN上检查过Visual Studio开发人员中心,但信息量太大了.有很多项目类型,我甚至不知道从哪里开始.

如果我想写一些符合以下要求的东西,我应该从哪里开始查看:

  1. 一个插件,在Visual Studio中像"服务"一样运行,能够在Visual Studio中查询信息并处理Visual Studio事件.
  2. 我想从VS访问的信息包括:当前打开哪些项目,谁打开它们,以及其他基于解决方案/项目文件的信息.
  3. 我希望能够处理的事件包括解决方案/项目/个人文件的打开/关闭/编辑/创建/删除.
  4. 我还希望能够在每个解决方案的基础上处理与VS的任何交互.所以,我想处理与文件的任何交互,甚至代码编辑,还有其他交互,比如菜单,或者只是IDE本身.

除了这些,我还希望能够在某处存储数据.这通常在哪里?我可以将元数据添加到解决方案文件中吗?或者,将此信息保存到数据库的小型本地实例是否有意义,该实例以某种方式附加到解决方案..?

我只需要朝着正确的方向努力,这有可能吗?我应该关注Visual Studio开发人员中心的哪个部分?我应该查看哪些API?

干杯!

Kri*_*erA 6

加载项可以完成大部分工作.VS2008中有一个用于创建基本加载项的模板.

我有一个加载项,您可以将该钩子下载到解决方案/项目加载事件等 - 它是免费的,并附带源代码(http://www.huagati.com/projectloader/download/huagatiprojectloader.zip).此特定加载项检测何时加载项目/解决方案并预加载引用的程序集以解决可能导致VS2008崩溃的CLR错误.无论如何,它的源代码显示了如何检测您正在寻找的一些事件.

除此之外,附加开发的权威资源以及所涉及的所有小怪癖和技巧都是Carlos Quintero的博客(http://msmvps.com/blogs/carlosq/)和他网站上的"howto"文章系列(http ://www.mztools.com/resources_vsnet_addins.aspx).

Craig Skibo的博客(http://blogs.msdn.com/craigskibo/)也有一些有用的提示.