分享
 
 
 

在Visual Studio.NET中使用自定义插件最大化您的生产力(一)Custom Add-Ins Help You Maximize the Productivity of Visual Studio .NET

王朝c#·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

在Visual Studio.NET中使用自定义插件最大化您的生产力

原文连接:http://msdn.microsoft.com/msdnmag/issues/02/02/VSIDE/print.asp

作者:Leo A. Notenboom

翻译:张翔 kilxy@hotmail.com

这篇文章假设您已经熟悉C#, Visual Basic .NET和CLR

难度程度 1 2 3

摘要

对于开发者来说,不管多么强大的集成开发环境(IDE)都需要具有自定义插件的功能。基于这个原因,Visual Studio. NET IDE提供了一个可扩展的、添加方便的而且还没有数量限制的自定义插件功能。这个自定义插件可以用Visual Basic、C、C#或则其它的.NET的使用的语言来编写。这篇文章解释了如何在Visual Studio. NET中增加一个自定义插件的例子。这个例子将演示如何通过自定义插件完成一个自定义的文本编辑功能,其中实现了两个功能,一个是在文本中简单的插入当前的日期,另一个是更加复杂的功能是实现重新格式化一段文本。最后您将学习如何在选项对话框中增加一个页。

如果您开始使用Microsoft Visual Studio .NET你应该知道他充满了新特征和技术。虽然,你肯能认为集成开发环境(IDE)是一个编写代码的简单的文本编辑器,它已经非常强大了。它提供的框架支持开发工具的插入而且是单一的无缝的可开发的。当然,IDE并不能满足所有的人,你或则我所要的功能可能并没有在这里。幸运的是IDE已经提供了可扩展的功能,它允许您扩展你所需要的任何东西。

开始

插件和宏是扩展IDE的两种方法。宏是可以被记录的和被立即执行的。因此,这是一种探索对象模型的强大的方法。宏使用一个以 .vsmacros 文件的形式来分布,通过双击这个文件来加载到宏编辑器中。宏在加载可用之后,宏就可以被使用者非常容易的修改。

另一方面,插件是编译的而且在分布之后就不能被修改。这样保护了你的知识财产。通过插件,你可以创建工具窗口这些操作对于Visual Studio.NET就像操作本地的功能一样。插件可以动态的改变菜单、工具条事件的状态和在帮助对话框中增加信息。插件是通过微软的安装文件(.MSI)来进行部署的,它可以轻易的安装和通过控制面板中的添加/删除程序对话框进行卸载。

创建一个插件的步骤在Visual Studio.NET的在线帮助中已经隐藏起来,同样也在Visual Studio.NET Automation Examples Web site中被隐藏了。我在这里不想介绍每一个的具体过程,但是可以回顾一下我创建一个插件所选择的过程。

创建一个插件首先要创建一个项目,在新建项目(New Projects)对话框其他项目(Other Projects)下面,你会发现扩展性项目(Extensibility Projects)。选择Visual Studio.NET外接程序(Visual Studio.NET Add-in)。图一显示了在一个点上的新建工程对话框。点击确定按钮开始向导。

图1创建一个新工程

对于我的插件,向导中的前三步都比较容易。第一步,我选择了C#语言作为插件的开发语言。第二步,我选择了Microsoft Visual Studio.NET作为插件的主机(host)。在您的插件中你当然可以包括VSMacros IDE。第三步,插件命名为“Text Editing Utilites”,并给出了适当的描述。

图2

在向导中的第四步,如图2所示,需要一些操作。

l 选择“是的,创建工具菜单项”。

l 确定“我的外接程序不提供……”没被选中。这个例子中我没有准备提供一个模式用户界面,但是如果你真的想更多的扩展你的插件功能,你可以选择此项。

l 确定“我希望我的外接程序在宿主程序启动时加载”没被选中。这样可以使调试是容易一些。插件的用户可以在以后的插件管理的操作中改变此选项。

l 我选择了“我的外接程序不仅仅……”选项。在我的计算机中我是真正的用户,同样我确认这个例子也是为了更多的开发者。这个选项仅仅是改变插件已经注册的用户。

第五步,你可以包含一些帮助信息。选中复选框,在下面输入任何的联系信息。现在,你可以完成向导,开始我们的插件。

下面列出了Connect对象的方法。这些方法是不完整的,可以在Connect.cs文件找到该类。这些你的新建项目的一部分。

l Connect::Connect。这是构造函数,在这里你可做简单初始化。

l Connect::OnConnection。这个方法是在IDE真正加载您的插件时调用。在这里你可以初始化你的插件,而且必须为IDE提供命令信息、制定键盘绑定等等。

l Connect::QueryStatus。这个方法是在适当的时候IDE确定当前状态时被调用。

l Connect::Exec。这个方法是IDE真正的执行命令是被调用的。

现在,所有的基础内容在这里,让我们开始开发一个简单的插件例子。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有