手把手教你制作vs2005装饰

    如果把.net开发人员比作是行走江湖的侠客,那vs就好比是侠客手中的剑,比武的时候讲究的的一寸长,一寸强,那我们应该如何改善我们的武器呢?铁匠铺的铁匠老软早就为我们做好了准备,他在我们的武器上装了很多环,打了很多洞,我们完全可以在这些环或洞上镶嵌珠宝,让这把剑更加靓丽,也可以在这把剑上装上暗器,增加武器杀伤力,如果您自身还练就了九阳神功,配上这把倚天剑,包你很快就知道无敌真寂寞的滋味。哈哈。不胡诌了,言归正传,本文通过详细的操作步骤讲述一个装饰vs2005的故事。
    让我们打开vs2005,选择创建项目,在接下来的向导中选择项目模板:其他项目类型-扩展性-visual studio外接程序,然后给我们的大钻石起个漂亮的名字:RecentProjectCleaner。忘记说了,这个外接程序要完成的任务是在菜单的工具栏创建一个子菜单,点击这个子菜单可以呼出我们的暗器,这个暗器用来清除vs2005起始页中的最近项目列表、 第一个步骤的图示如下:
         
  然后,一路next,直到出现选择外接程序选项对话框的时候,选择如下:
      
点击下一步,完成向导后,项目模板会自动生成的文件列表如下:
CommandBar.resx      -----------    这个是命令栏的资源文件
Connect.cs                 -----------    是一个继承了IDTExtensibility2, IDTCommandTarget的类,是addins的实现类
RecentProjectCleaner.AddIn   -------------------这个是addins进行xcopy部署的配置文件,部署的时候拷贝到C:\Documents and Settings\Administrator\My Documents\Visual Studio 2005\Addins
RecentProjectCleaner - For Testing.AddIn    -------------这个是调试运行的的测试类,在调试的时候,这个文件会自动拷贝到C:\Documents and Settings\Administrator\My Documents\Visual Studio 2005\Addins位置
首先介绍最主要的文件Connect.cs  ,这个类包含如下的实现方法
OnConnection  - 处理外接程序加载的时候触发
OnDisconnection  -  在处理外接程序卸载的时候触发
OnAddInsUpdate   -  外接程序出现更新的时候触发
OnStartupComplete   -  外接程序加载结束时候触发
OnBeginShutdown    -   开始卸载的时候触发
QueryStatus      -    查询状态
Exec    -   执行命令
本例中,我们实现的目的是:在工具菜单上创建一个新的子菜单,点击这个菜单,能够清除启动页最近项目列表,所以我们需要做的是
1) 在外接程序加载的时候,创建菜单
2) 点击菜单,执行删除最近列表项的命令
3) 卸载的时候,删除新增菜单项
所以添加工具子菜单的代码要添加到OnConnection  中如下:
OnConnection
执行命令的操作添加到Exec中,
Exec
在程序卸载的时候,卸载菜单项
OnDisconnection
这样一个非常简单的vs2005addins就制作成功了,接下来您就可以将该程序部署到你的倚天剑上了,部署方法超级简单,和vs03不同的是,05支持xcopy部署,您可以将RecentProjectCleaner.AddIn和生成的RecentProjectCleaner.dll拷贝到C:\Documents and Settings\Administrator\My Documents\Visual Studio 2005\Addins,就完成了addins的部署,值得说下的是RecentProjectCleaner.AddIn,这个文件描述了vs2005应该如何认识新增的伙计,它里面定义了宿主应用程序的信息(名称,版本)和addins的信息(所在程序集,类名,加载方式),如果您想在部署后让addins立即被启用,将LoadBehavior设置为1,还有不知道是我本地项目模板的问题还是其他原因,默认创建的RecentProjectCleaner.AddIn里面的Assembly多了.dll。也就是RecentProjectCleaner.dll,这样的dll显然不存在,去掉一个.dll,就可以了
看下部署后的效果吧:重新启动vs2005,点击工具,菜单就多了一项:RecentProjectCleaner,如图

点击外接程序管理器,可以多了一项RecentProjectCleaner
在菜单中点击RecentProjectCleaner,选择清除,重启vs2005,最近列表项就清除了。

这里是源程序,这里只是一个的介绍,大家可以下载下去扩展,很好玩
/Files/jillzhang/RecentProjectCleaner.rar
 
posted @ 2007-09-26 09:43 Robin Zhang 阅读(...) 评论(...) 编辑 收藏