VS20XX-Add-In插件开发
参考文章:
1:http://www.cnblogs.com/hecool/archive/2013/04/06/3002822.html
2: http://www.cnblogs.com/anderslly/archive/2009/05/30/vs-addin-summary.html
在链接地址1中已经讲的很详细,此文章只作为我自己的记录;
首先新建一个项目,首先【其他项目类型】-【扩展性】-【Visual Studio外接程序】然后只勾住在菜单生产按钮操作即可一步到底的让项目新建成功;在菜单命令下生产操作按钮,故名思意是在工具【默认】菜单下生成一个操作的选项;
创建好项目后,其他的不用看,主要是【Connect.cs】和【MyNotePlugIn.AddIn】文件,而我们的【MyNotePlugIn - For Testing.AddIn】只是一个按【F5】键时用来测试部署在{user}\Documents\Visual Studio 201X\Addins下的文件;在第二个链接地址中,已经有很详细的Add-In机制详解;这里只做下简单说明:
1、 OnConnection:在连接VS的时候去DoSomething,在这里也可以指定我们自定义的操作选项挂到VS的哪个菜单上去;
2、 OnStartupComplete:事件仅仅在Add-In随VS启动加载的时候才会触发
3、 OnAddInsUpdate:在某个Add-In被加载或卸载的时候,OnAddInsUpdate事件会触发
4、 OnBeginShutDown:如果在一个Add-In运行的时候关闭VS,OnBeginShutDown事件会触发。我们在这个时候可以做一些必要的清理工作
5、 OnDisconnection:在Add-In的生命周期结束的时候,OnDisconnection事件会触发。它跟OnBeginShutDown事件的不同之处在于,这里结束的是Add-In而不是VS
我们要做什么了?
点击插件真正要做的事情是在Exec这个方法里进行处理的;【链接1中示例】
//获取选择文本对象
TextSelection selectedText = _applicationObject.ActiveDocument.Selection as TextSelection;
string copyInfo = AddInHelper.Read(); //读取版权配置信息
copyInfo = copyInfo.Replace("@time", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));//替换时间点位符
selectedText.Text = copyInfo; //覆盖选择文本
if(commandName == "MyNotePlugIn.Connect.MyNotePlugIn")
{
handled = true;
return;
}
AddInHelper主要是对AddIn.xml进行配置信息操作;
到此为止直接运行项目,可以将AddIn.xml中的信息加入到指定位置了;
但是如果我们想修改配置信息,咋办?像链接1中的样,在选项中加入自己的可更改配置信息;
So,继续来仿照;
首先加一个用户控件,并且实习接口【IDTToolsOptionsPage】,其他的方法都不用管【方法作用,根据命名即可知】,只用关注两个,OnAfterCreated,OnOK;
OnAfterCreated:加载后,创建时,将xml中的信息读取放到用户控件中的显示框中;
OnOK:点击确定后,我们需要将控件中的信息保存到xml中;
用户控件做好了,需要将它配置到ToolsOptionsPage中;
在MyNotePlugIn.AddIn配置文件中加上如下代码即可;【切记dll的路径和AddIn.xml的路径正确即可】
<ToolsOptionsPage>
<Category Name="Free插件">
<SubCategory Name="版权模板">
<Assembly>MyNotePlugIn.dll</Assembly>
<FullClassName>MyNotePlugIn.NoteConfig</FullClassName>
</SubCategory>
</Category>
</ToolsOptionsPage>
到现在基本完事,如果想把这个插件发给别人用,只用将Dll,AddIn.xml, MyNotePlugIn.AddIn三个文件放到{user}\Documents\Visual Studio 201X\Addins下面即可以了;当然你得重启VS;
源码链接1,详解链接2;操作看本文;
VS20XX-Add-In插件开发的更多相关文章
- Add In 简介(主要翻译于ESRI官方文档)
为ArcGIS桌面端建立Add In插件 平时以工作为主,有空时翻译一些文档,顺便练习英文,这个是因为用Add In来学习一下. 主要包括: 关于Add In 什么时候使用Add In Python ...
- ArcMap插件开发初识:Add In
之前一直在做ArcEngine的相关开发,做的winform相关,新换了工作,又开始新的学习旅程! Add In 这个东西很早就知道有,但是一直没有用过,因为之前的公司有自己框架,接口,虽然我也是做插 ...
- JavaScript学习笔记(四)——jQuery插件开发与发布
jQuery插件就是以jQuery库为基础衍生出来的库,jQuery插件的好处是封装功能,提高了代码的复用性,加快了开发速度,现在网络上开源的jQuery插件非常多,随着版本的不停迭代越来越稳定好用, ...
- jira的插件开发流程实践
怎么开头呢,由于自己比较懒,博客一直不怎么弄,以后克己一点,多传点自己遇到的问题和经历上来,供自己以后记忆,也供需要的小伙伴少走点弯路吧 最近公司项目需要竞标一个运维项目,甲方给予了既定的几种比较常用 ...
- 【原创】记一次Project插件开发
一.开发背景 最近在使用微软的Office Project 2010 进行项目管理,看到排的满满的计划任务,一个个地被执行完毕,还是很有成就感的.其实,不光是在工作中可以使用Project进行项目进度 ...
- JavaScript学习总结(四)——jQuery插件开发与发布
jQuery插件就是以jQuery库为基础衍生出来的库,jQuery插件的好处是封装功能,提高了代码的复用性,加快了开发速度,现在网络上开源的jQuery插件非常多,随着版本的不停迭代越来越稳定好用, ...
- Eclipse ndk fix插件开发
一. 手工修复ndk环境bug Eclipse做ndk开发的时候, 经常会遇到编译过去,却报语法错误的问题,比如 ①. 头文件不识别 ②. 头文件识别了, 类型不识别 针对这一的bug,我们一般按照如 ...
- jquery插件开发
jQuery是一个封装的很好的类,比如我们用语句$("#btn1") 会生成一个 jQuery类的实例. 一.jQuery插件开发注意要点 1.使用闭包,避免全局依赖,避免第三方破 ...
- 跟我一起学JQuery插件开发
http://www.cnblogs.com/Leo_wl/archive/2012/04/06/2435511.html 以前一直比较好奇,jquery插件是怎么开发的,怎么写属于自己的插件? 昨天 ...
- jQuery插件开发(转)
jQuery插件开发全解析 jQuery插件的开发包括两种: 一种是类级别的插件开发,即给jQuery添加新的全局函数,相当于给jQuery类本身添加方法.jQuery的全局函数就是属于jQuery命 ...
随机推荐
- Net 一个请求的处理流程
Net 一个请求的处理流程 1.浏览器请求 请求-准备环境-->处理请求 2.Aspnet 环境的创建 客户请求 IIS区分静态文件还是动态文件,静态文件直接文件返回,动态文件通过asp ...
- Java加深理解有关注释
一.获取应用笔记 常常会遇到这种情况 package Tokyo.Hot; public class Demo { public static void main(String[] args) { n ...
- VMware 10设备CentOs 6.5
最近的哥哥再次看到鸟,准备安装CentOs,一看最新的版本号为6.5,这本书5.X的,稍有不同点,二话不说,呵呵~ 矿VMware版本号是10.0.1 build-1379776 首先创建一个新的虚拟 ...
- Winform 实现像菜单一样弹出层
原文:Winform 实现像菜单一样弹出层 在实际工作中,如果能像菜单一样弹出自定义内容,会方便很多,比如查询时,比如下拉列表显示多列信息时,比如在填写某个信息需要查看一些信息树时.这个时候自定义弹出 ...
- SQL随着子查询结果更新多个字段
笔者:iamlasong 要求:表格内容需要改变,在临时表中内容的变化,使用SQL官方声明更新表若干领域. 假设更新一个字段,直接用字段名=子查询就能够了,多个字段更新,将字段在括号里并列写出就可以, ...
- nyoj 破门锁(水题)
Time Limit: 1000ms Memory Limit: 128000KB 64-bit integer IO format: Java class name: Submit Sta ...
- 四:redis的sets类型 - 相关操作(有序和无序集合)
================四十五种(有序和无序集合):sets种类(它是一个集)============= 简介: set它代表的集合.加入是随意添加----->无序集合 ...
- 在vc正在使用xtremetoolkit接口库-----使用简单的控制
首先,我们需要在StdAfx.h增加头文件: #include "XTToolkitPro.h" #include "XTPResource.h" 在test. ...
- MVC推荐教程和文章列表
着手Getting Started Getting Started with ASP.NET MVC 5 (共11部分) Pluralsight ASP.NET MVC 5 Fundamentals( ...
- MVC中实现多按钮提交(转)
有时候会遇到这种情况:在一个表单上需要多个按钮来完成不同的功能,比如一个简单的审批功能. 如果是用webform那不需要讨论,但asp.net mvc中一个表单只能提交到一个Action处理,相对比较 ...