下面按照將Addin的安裝後存放的位置的不同分兩種情況:
- 將建立的Addin存放在My Documents\Visual Studio 2008\Addins目錄下。
- 將建立的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就指定了安裝檔案的存放路徑了,下面按本文開頭的兩種方式來講述。
- 將建立的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的子功能表了。
- 不更改DefaultLocation,就會自動的安裝到\Program files\company name\product name目錄下面,
由於這個Addin目錄不是Visual Studio所預設知道的,所以要把它加入到Tools\Options裡面Addin的路徑配置中就可以了。