建立擴充功能的功能表命令
如需 Visual Studio 2017 的最新文件請參閱 Visual Studio 2017 文件。
本逐步解說示範如何建立擴充功能會啟動 [記事本] 的功能表命令。
必要條件
啟動 Visual Studio 2015 中,您未安裝 Visual Studio SDK 從 「 下載中心 」。 它是 Visual Studio 安裝程式的選用功能。 您也可以在稍後安裝 VS SDK。 如需詳細資訊,請參閱安裝 Visual Studio SDK。
建立功能表命令
建立 VSIX 專案,名為FirstMenuCommand。 您可以找到 VSIX 專案範本,在新的專案下的對話方塊Visual C# / 擴充性。
專案開啟時,加入名為的自訂命令項目範本FirstCommand。 在方案總管 中,以滑鼠右鍵按一下專案節點,然後選取加入 / 新的項目。 在加入新項目 對話方塊中,移至Visual C# / 擴充性,然後選取自訂命令。 在名稱視窗的底部欄位中,將命令檔名稱變更為FirstCommand.cs。
建置此專案並開始偵錯。
Visual Studio 的實驗執行個體隨即出現。 如需詳細的實驗執行個體的詳細資訊,請參閱實驗執行個體。
在實驗執行個體中,開啟工具 / 擴充功能和更新視窗。 您應該會看到FirstMenuCommand這裡延伸模組。 (如果您開啟擴充功能和更新在 Visual Studio 的工作執行個體,不會看到FirstMenuCommand)。
現在請移至工具實驗執行個體中的功能表。 您應該會看到叫用 FirstCommand命令。 此時只會出現訊息方塊,指出 「 FirstCommandPackage 內 FirstMenuCommand.FirstCommand.MenuItemCallback() 」。 我們將了解實際啟動 [記事本] 下一節中從這個命令。
變更功能表命令處理常式
現在讓我們更新命令處理常式,以啟動 [記事本]。
停止偵錯,並返回您的 Visual Studio 的工作執行個體。 開啟 FirstCommand.cs 檔案並新增下列 using 陳述式︰
using System.Diagnostics;
尋找 private FirstCommand 建構函式。 這是命令連結至命令的服務和命令處理常式會指定位置。 變更命令處理常式的名稱來 StartNotepad,如下所示︰
private FirstCommand(Package package) { if (package == null) { throw new ArgumentNullException(nameof(package)); } this.package = package; OleMenuCommandService commandService = this.ServiceProvider.GetService(typeof(IMenuCommandService)) as OleMenuCommandService; if (commandService != null) { CommandID menuCommandID = new CommandID(CommandSet, CommandId); // Change to StartNotepad handler. MenuCommand menuItem = new MenuCommand(this.StartNotepad, menuCommandID); commandService.AddCommand(menuItem); } }
移除 MenuItemCallback 方法並新增 StartNotepad 方法只會啟動 [記事本]:
private void StartNotepad(object sender, EventArgs e) { Process proc = new Process(); proc.StartInfo.FileName = "notepad.exe"; proc.Start(); }
現在試試看。 當您開始偵錯的專案,然後按一下工具] / [叫用 FirstCommand,您應該會看到 [記事本] 的執行個體出現。
您可以使用的執行個體程序類別來執行任何的可執行檔中,而不只是 「 記事本 」。 試試看 calc.exe,例如。
清除在實驗環境
如果您正在開發多個副檔名,或只瀏覽具有不同版本的延伸模組程式碼的結果,您的實驗環境可能會停止運作無誤的方式。 在此情況下,您應該執行重設指令碼。 它會呼叫重設 Visual Studio 2015 實驗執行個體,和其隨附於 Visual Studio SDK。 此指令碼移除在實驗環境中,您的擴充功能的所有參考,因此您可以從頭開始。
您可以取得此指令碼中有兩種︰
從桌面上,尋找重設 Visual Studio 2015 實驗執行個體。
從命令列中,執行下列命令︰
<VSSDK installation>\VisualStudioIntegration\Tools\Bin\CreateExpInstance.exe /Reset /VSInstance=14.0 /RootSuffix=Exp && PAUSE
部署您的擴充功能
既然您已經執行您想要的方式工具擴充功能,它是時間來思考與朋友和同事共用。 這很簡單,只要它們已安裝 Visual Studio 2015。 您只需要為您所建立的.vsix 檔傳送給他們。 (請務必建置在發行模式中)。
您可以找到此延伸模組的.vsix 檔案 FirstMenuCommand bin 目錄中。 具體而言,假設您已建立的發行組態,則會發生在︰
>\FirstMenuCommand\FirstMenuCommand\bin\Release\ FirstMenuCommand.vsix
若要安裝擴充功能,您的朋友必須關閉所有開啟的 Visual Studio 中,執行個體,然後按兩下此.vsix 檔案,這會開啟VSIX 安裝程式。 將檔案複製到**%LocalAppData%\Microsoft\VisualStudio\14.0\Extensions**目錄。
當您的朋友一次啟動 Visual Studio 時,他會發現 FirstMenuCommand 擴充功能中的工具 / 擴充功能和更新。 他可以移至擴充功能和更新來解除安裝或停用擴充功能,太。
後續步驟
此逐步解說示範了一小部分您可以執行的功能與 Visual Studio 擴充功能。 以下是使用 Visual Studio 擴充功能可以執行其他 (很簡單) 作業的簡短清單︰
您可以使用簡單的功能表命令的更多項目︰
加入您自己的圖示︰將圖示加入功能表命令
變更功能表命令的文字︰變更功能表命令的文字
命令加入功能表捷徑︰繫結至功能表項目的的鍵盤快速鍵
加入不同類型的命令、 功能表和工具列︰擴充的功能表和命令
新增工具視窗和擴充的內建的 Visual Studio 工具視窗︰延伸和自訂工具視窗
加入程式碼的建議,IntelliSense 和其他功能,對現有程式碼編輯器︰擴充編輯器和語言服務
加入您的擴充功能的選項和屬性頁和使用者設定︰擴充屬性和 [屬性] 視窗和擴充使用者設定和選項
其他類型的延伸模組需要多一點的工作,例如建立新的專案類型 (擴充專案),建立新的編輯器類型 (建立自訂編輯器和設計工具),或在獨立的 shell 中實作您的擴充功能︰ Visual Studio 隔離 Shell