Visual Studio 2008插件/附加组件开发-入门指南

7

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

我查看了MSDN上的Visual Studio Developer Centre,但信息量太大了。项目类型很多,我甚至不知道从哪里开始。

如果我想编写满足以下要求的内容,我应该从哪里开始查找:

  1. 一个像“服务”一样在Visual Studio中运行的插件,能够轮询Visual Studio以获取信息并处理Visual Studio事件。
  2. 我想从VS中访问的信息有:当前打开的项目、谁正在打开它们以及其他基于解决方案/项目文件的信息。
  3. 我想要处理的事件包括:打开/关闭/编辑/创建/删除解决方案/项目/单个文件等。
  4. 我还希望能够按解决方案处理与VS的任何交互,例如文件交互,甚至代码编辑,以及其他交互,例如菜单或IDE本身。

除此之外,我还希望能够将数据存储在某个地方。通常情况下,这是在哪里完成的?我可以向解决方案文件添加元数据吗?或者,将这些信息保存到某个小型本地数据库实例中,该实例与解决方案相关联是否有意义..?

我只需要在正确的方向上获得一点帮助,这些都是可能的吗?我应该关注Visual Studio Developer Centre的哪一部分?我应该查看哪些API?

谢谢!


多么讽刺啊...我正在开发一个能够精确追踪你在VS中工作于某个解决方案/文件上的时间的工具。进展如何? - Dave Swersky
@dave:酷啊,我其实还没有开始...虽然我非常想知道你是如何做到这一点的。这将是一个开源项目吗?如果不是,我很想知道你采取的更高级别的方法。干杯! - andy
@andy:我刚完成了一个原型,还在考虑是否开源。无论如何,我很快就会寻找测试人员... :) - Dave Swersky
2
@andy:http://vstime.codeplex.com - Dave Swersky
@Dave - 兄弟,我会去看看的,干得好啊! - andy
2个回答

6
一个插件可以完成大部分工作。在VS2008中有一个用于创建基本插件的模板。
我有一个插件可供下载,它可以钩入解决方案/项目加载事件等——它是免费的,并附带源代码(http://www.huagati.com/projectloader/download/huagatiprojectloader.zip)。这个特定的插件可以检测到项目/解决方案何时被加载,并预先加载引用的程序集以解决CLR错误,该错误可能导致VS2008崩溃。无论如何,它的源代码展示了如何检测您正在寻找的一些事件。
除此之外,关于插件开发和所有小技巧的权威资源是Carlos Quintero的博客(http://msmvps.com/blogs/carlosq/)和他网站上的“howto”文章系列(http://www.mztools.com/resources_vsnet_addins.aspx)。
Craig Skibo的博客(http://blogs.msdn.com/craigskibo/)也有一些有用的提示。

@kristoferA:嘿,克里斯托弗,太棒了,谢谢你提供源代码,非常感谢。 - andy

2

1
酷,谢谢Saunders,我不太擅长从书本中学习,它对我来说不太容易理解,可能是因为阅读障碍、注意力缺陷或者...懒惰...当然不是。我需要要么尝试一下,要么与他人交流。如果我遇到困难,我肯定会去查看的。 - andy
那么,在这个领域你会遇到问题。它非常丰富,但不够干净。下一步是使用VS2008 SDK中的示例,但如果没有一定的结构进行学习,祝你好运。顺便说一句,我绝不会称呼这种情况为懒惰。 - John Saunders

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接