心如止水

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

下面按照将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的路径配置中就可以了。

 

 

 

 

 

posted on 2009-03-13 10:03  cutebear  阅读(2813)  评论(0编辑  收藏  举报