zoukankan      html  css  js  c++  java
  • 创建 一个Visual Studio Addin

    下面按照将Addin的安装后存放的位置的不同分两种情况:

    1. 将创建的Addin存放在My Documents\Visual Studio 2008\Addins目录下。
    2. 将创建的Addin存放在自定义的文件夹中。

    首先创建一个Addin项目,取名为Addin1:

    OK后,会出来一个向导,例如为这个Addin命名和加一个描述等。接下来的画面中描述Addin不同的加载方式,例如选择第一个,

    然后next下去,就完成了这个Addin的创建了。

    这时我们看见有个Connect.cs文件,我们要添加的逻辑就要加在这个文件了。找到OnConnection方法的这句:

    //Add a command to the Commands collection:

    Command command = commands.AddNamedCommand2(_addInInstance, "Addin1", "Addin1", "Executes the command for Addin1", true, 59, ref contextGUIDS, (int)vsCommandStatus.vsCommandStatusSupported+(int)vsCommandStatus.vsCommandStatusEnabled, (int)vsCommandStyle.vsCommandStylePictAndText, vsCommandControlType.vsCommandControlTypeButton);

    注意参数59是指向了系统定义的一个默认的addin的笑脸图标。

    这里的第二和第三个参数分别是这个Addin的名称和将要显示在Tools菜单的内容了,我们把它改成我们想要的,例如名称变成TestAddin1,菜单内容也变成TestAddin1,即更改成:

    Command command = commands.AddNamedCommand2(_addInInstance, "TestAddin1", "TestAddin1", "Executes the command

    然后找到Exec方法,在这里面加入要执行的逻辑了,例如把以下的这段代码

                    if(commandName == "Addin1.Connect.Addin1")

                    {

                        handled = true;

                        return;

                    }

    改成:

                    if(commandName == "Addin1.Connect.TestAddin1")

                    {

    TextSelection selectedText = _applicationObject.ActiveDocument.Selection as TextSelection;

    selectedText.Text = "this is a Addin Test";

                        handled = true;

                        return;

                    }

    这个Addin完成的操作是插入上面的一个字符串。

    我们注意生成的solution如下:

    注意这里有两个.AddIn文件,其中For Testing.AddIn的路径是\My Documents\Visual Studio 2008\Addins\Addin1 - For Testing.AddIn,这是Visual Studio自动生成的一个调试这个Addin的配置文件,并把它放在这个特殊的文件夹下,因为Visual Studio会自动的加载这个文件夹下的所有Addins,并且该文件有这样的一个配置信息:

    <Assembly>C:\Documents and Settings\xiongy.CORP\My Documents\Visual Studio 2008\Projects\Addin1\Addin1\bin\Addin1.dll</Assembly>

    (注意默认的该编译后的dll的名称是Project.dll,这里把它改成Addin1.dll)

    所以就会调用这个插件的dll了。由于这个文件是用来测试的,所以在实际的setup插件的时候,我们删除For Testing.AddIn,留住Addin1.AddIn。

    接下来为这个Addin添加一个安装项目,以便它能够被很方便的安装到别人的电脑中,为这个安装项目取名为Addin1Setup,右键该安装项目,选择View\File System,这里要做的是选择安装文件存放的位置,我们选择Application Folder,按F4查看属性,

    这里的DefaultLocation就指定了安装文件的存放路径了,下面按本文开头的两种方式来讲述。

    1. 将创建的Addin存放在My Documents\Visual Studio 2008\Addins目录下。

      首先将DefaultLocation改为[PersonalFolder]\Visual Studio 2008\Addins。由于My Documents\Visual Studio 2008\Addins是一个大的目录,里面可能存放很多的Addin,为了使多个Addin间目录结构清晰,我们在Application Folder下面建立一个子文件夹,取名为Addin1,然后右击Addin1,先添加Project Output(在弹出的选项中选择Primary Output),再选择添加File(在弹出的对话框中选择Addin1项目中的Addin1.AddIn文件):

      执行后的结果是:

       

      然后编译安装项目,运行debug目录下的setup.exe就把这个Addin安装到了指定目录下了:

      注意是在Addin1子文件夹下。

       

      然后在我们新建的Visual Studio工程里就可以用了。

      注意下面的Addin Manager,在上面的操作完成以后,是不需要对下面的对话框操作的,就会发现创建的Addin已经出现在Tools菜单里了。

       

      如果对下面的Checkbox进行了选择,例如第一列打勾,则表示立即load这个Addin,第二列表示在启动的时候load等等,这样Tools菜单里就不出现那个addin的子菜单了。

       

    2. 不更改DefaultLocation,就会自动的安装到\Program files\company name\product name目录下面,

      由于这个Addin目录不是Visual Studio所默认知道的,所以要把它加入到Tools\Options里面Addin的路径配置中就可以了。

     

     

     

     

     

  • 相关阅读:
    如何把项目上传到github
    springBoot整合Mybatis为什么可以省略mybatis-config.xml
    【Mybatis源码解析】-mybatis-spring原理解析
    没有名字 [整除分块优化dp]
    替身使者 [区间dp]
    P3158 [CQOI2011]放棋子 [动态规划]
    博士之时 [分类讨论, 计数]
    曾有两次 [最短路树]
    序列 [线段树]
    城镇 [树的直径, 启发式合并]
  • 原文地址:https://www.cnblogs.com/bear831204/p/1410244.html
Copyright © 2011-2022 走看看