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

时间:2009-05-13 02:38:11

标签: visual-studio plugins extensibility visual-studio-addins

嘿伙计们,关于this stackoverflow question,我将如何创建自己的Visual Studio 2008插件。

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

如果我想写一些符合以下要求的内容,我应该从哪里开始

  1. 一个在Visual Studio中像“服务”一样运行的插件,可以在Visual Studio中查询信息,并处理Visual Studio事件。
  2. 我想从VS访问的信息包括:当前打开哪些项目,谁打开它们,以及其他基于解决方案/项目文件的信息。
  3. 我希望能够处理的事件包括解决方案/项目/个人档案的开启/关闭/编辑/创建/删除。
  4. 我还希望能够在每个解决方案的基础上处理与VS的任何交互。所以,我想处理与文件的任何交互,甚至代码编辑,还有其他交互,比如菜单,或者只是IDE本身。
  5. 除了这些,我还希望能够在某处存储数据。这通常在哪里?我可以将元数据添加到解决方案文件中吗?或者,将此信息保存到数据库的小型本地实例是否有意义,该实例以某种方式附加到解决方案..?

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

    喝彩!

2 个答案:

答案 0 :(得分: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/)也有一些有用的提示。

答案 1 :(得分:2)