下面按照将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就指定了安装文件的存放路径了,下面按本文开头的两种方式来讲述。
首先将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的子菜单了。
由于这个Addin目录不是Visual Studio所默认知道的,所以要把它加入到Tools\Options里面Addin的路径配置中就可以了。