VS2010 Addins 外接程序(插件)開發


VS2010 Addins 外接程序(插件)開發

簡單做了一個添加文件頭注視的插件,算作是學習。

 

首先看一下界面

外接程序是在 Visual Studio 集成開發環境 (IDE) 中運行的已編譯的 DLL。 編譯可以保護知識產權和提高性能。 雖然可以手動創建外接程序,但使用“外接程序向導”更為簡便。 此向導創建一個功能全面但卻很基本的外接程序,創建完該程序后可立即運行它。 “外接程序向導”生成基本的空程序后,可向其添加代碼並對其進行自定義。

“外接程序向導”讓您可以為外接程序提供顯示名稱和說明。 這兩項內容都將出現在“外接程序管理器”中。 還可以選擇讓向導生成代碼,用於向“工具”菜單中添加可打開外接程序的命令。您也可以選擇為外接程序顯示一個自定義“關於”對話框。 向導完成時,將生成只有一個類的新項目(名為 Connect),該項目實現外接程序。

第一步 創建解決方案

  這里使用的是VS2010 、C#、WinForm

  文件→新建→項目→其他項目類型→擴展性→Visual Studio 外接程序,修改名稱、位置、解決方案名稱等信息,點擊確定

 

第二步 根據外接程序想道創建項目

  當然,你如果已經是高手了,可以不用使用向導創建 項目。

  如圖

  下一步,選擇使用C#創建外接程序

  下一步,選擇使用應用程序主機,有兩個選項,Microsoft Visual Studio 2010 和Microsoft Visual Studio 2010 Macros(宏),兩個都勾選

  下一步,填寫外界程序名稱和說明

  下一步,在選擇外接程序選項中,在“是否為外接程序創建命令欄用戶界面?”中勾選“是的,創建工具菜單項“,向導會為你在工具菜單中創建一個菜單

  下一步,關於信息,根據需要勾選是否生成關於對話框

  下一步,完成

  這樣系統向導就為你創建了一個項目,並且生成了一個Connect類,實現IDTExtensibility2和IDTCommandTarget接口

第三步 創建一個窗口

  在項目上,右鍵,添加一個WinForm窗口,我在這里命名為MainForm

第四步 在MainForm類中添加application對象  

復制代碼
/// <summary>
        /// application對象
        /// </summary>
        private DTE2 _applicationObject;

        /// <summary>
        /// 
        /// </summary>
        public DTE2 applicationObject 
        {
            get { return _applicationObject; }
            set { this._applicationObject = value; }
        }
復制代碼

 

  

第五步 顯示這個創建的窗口

  在Connect類中找到public void Exec(string commandName, vsCommandExecOption executeOption, ref object varIn, ref object varOut, ref bool handled)這個方法  

  

復制代碼
/// <summary>實現 IDTCommandTarget 接口的 Exec 方法。此方法在調用該命令時調用。</summary>
        /// <param term='commandName'>要執行的命令的名稱。</param>
        /// <param term='executeOption'>描述該命令應如何運行。</param>
        /// <param term='varIn'>從調用方傳遞到命令處理程序的參數。</param>
        /// <param term='varOut'>從命令處理程序傳遞到調用方的參數。</param>
        /// <param term='handled'>通知調用方此命令是否已被處理。</param>
        /// <seealso class='Exec' />
        public void Exec(string commandName, vsCommandExecOption executeOption, ref object varIn, ref object varOut, ref bool handled)
        {
            handled = false;
            if(executeOption == vsCommandExecOption.vsCommandExecOptionDoDefault)
            {
                if(commandName == "MyHeadeAddin.Connect.MyHeadeAddin")
                {
                    //此處添加自己的邏輯代碼
                    MainForm mainF = new MainForm();
                    mainF.applicationObject = _applicationObject;
                    mainF.Show();

                    handled = true;
                    return;
                }
            }
        }
復制代碼

 

第六步 運行調試

  運行后會打開一個新的VS2010,在工具菜單中會多出一個我們自己外接程序的菜單

  

  點擊這個按鈕,我們創建的窗口就會彈出來了!

  

 

  至於其他操作,就可以在這個MainForm的基礎上進行了。

  對VS2010 IDE的一些操作主要圍繞DTE2的applicationObject實例對象來進行。

 DTE2的命名空間是EnvDTE80。

 

 

 

  關於EnvDTE的說明http://technet.microsoft.com/zh-cn/envdte(it-it).aspx

 

 

 
  EnvDTE 是包含 Visual Studio 內核自動化的對象和成員的用程序集包裝的 COM 庫。  

在 EnvDTE80、EnvDTE90、 EnvDTE90a 和 EnvDTE100 命名空間中包含更改和新功能。添加對 EnvDTE.dll 的程序集引用時,您還必須將程序集的 “嵌入互操作類型”屬性設置為 false。

最后,如果要在其他計算機上使用,只需要將.AddIn和生成的.dll文件放到 文檔目錄下的\Visual Studio 2010\Addins\目錄中即可,如圖:

  第一次接觸插件開發,還是從我的一個師哥那接觸的。

  插件下載地址:http://files.cnblogs.com/zsmhhfy/HeadAddins.rar

  另外參考:http://technet.microsoft.com/zh-cn/magazine/80493a3w.aspx

 

 
 
 
標簽:  C#.Net


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM