• 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}DocumentsVisual Studio 201XAddins下的文件;在第二个链接地址中,已经有很详细的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}DocumentsVisual Studio 201XAddins下面即可以了;当然你得重启VS;
    源码链接1,详解链接2;操作看本文;
  • 相关阅读:
    使用不同方法输出一维整型数组a的各元素
    从键盘输入一个字符串与一个指定字符,将字符串中出现的指定字符全部删除
    指向函数的指针
    输入一个十进制正整数,将其转换成二进制、八进制、十六进制数输出
    java速成一篇博文搞定基础
    倒排索引lucene
    Manacher's ALGORITHM: O(n)时间求字符串的最长回文子串
    C++对象内存布局2进阶篇C++ 对象的内存布局(下)
    笔试面试设计模式&软件测试&软件工程
    字典树
  • 原文地址:https://www.cnblogs.com/RegicideGod/p/3147492.html
Copyright © 2020-2023  润新知