7

关于这个 stackoverflow 问题,我将如何创建自己的 Visual Studio 2008 插件?

我查看了 MSDN 上的 Visual Studio 开发人员中心,但信息量巨大。有很多项目类型,我什至不知道从哪里开始。

如果我想写一些满足以下要求的东西,我应该从哪里开始寻找:

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

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

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

干杯!

4

2 回答 2

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/ ) 也有一些有用的提示。

于 2009-05-13T02:51:16.617 回答
2

你要:

  1. Visual Studio 可扩展性开发人员中心
  2. VSX 论坛
  3. 视觉工作室 2008 SDK
  4. Keyvan Nayyeri专业 Visual Studio 可扩展性

买书,没有别的。

于 2009-05-13T03:17:34.020 回答