當前位置: 妍妍網 > 碼農

Visual Studio 2022 外掛程式開發技術詳解及C#範例程式碼

2024-07-06碼農

引言

Visual Studio(VS)作為微軟開發的一款強大的整合式開發環境(IDE),廣泛套用於各種程式語言的計畫開發。透過擴充套件外掛程式,VS能夠進一步提升開發效率,提供豐富的功能和更好的使用者體驗。本文將詳細介紹如何在Visual Studio 2022中開發外掛程式,並透過C#範例程式碼來展示外掛程式開發的基本流程和技巧。

一、準備開發環境

1.1 安裝Visual Studio 2022

首先,需要下載並安裝Visual Studio 2022。可以從微軟官方網站下載社群版(Community),這個版本是免費的,適用於個人開發者、開源計畫、學術研究和小團隊。

  • 存取Visual Studio 官網下載Visual Studio 2022安裝包。

  • 執行安裝程式,按照提示進行安裝。在安裝過程中,需要選擇「.NET桌面開發」和「Visual Studio 擴充套件開發」兩個工作負荷,以確保能夠開發VS外掛程式。

  • 1.2 驗證安裝

    安裝完成後,開啟Visual Studio 2022,驗證「.NET桌面開發」和「Visual Studio 擴充套件開發」工作負荷是否已安裝。可以透過「擴充套件」->「管理擴充套件」來檢查已安裝的擴充套件。

    二、建立VS外掛程式計畫

    2.1 建立VSIX計畫

    VS外掛程式通常以VSIX包的形式釋出,VSIX是Visual Studio Extension的縮寫。首先,我們需要建立一個VSIX計畫:

    1. 開啟Visual Studio 2022。

    2. 選擇「建立新計畫」。

    3. 在計畫樣版中選擇「擴充套件性」類別,然後選擇「VSIX Project」。

    4. 設定計畫名稱和位置,點選「建立」。

    2.2 自訂VSIX內容

    建立VSIX計畫後,需要自訂一些內容,如外掛程式名稱、描述、版本等。這些內容可以在計畫的 source.extension.vsixmanifest 檔中設定。

  • 開啟 source.extension.vsixmanifest 檔。

  • 修改「產品名稱」、「作者」、「版本」等欄位。

  • 在「資產」分頁中添加任何需要隨外掛程式一起部署的檔。

  • 三、建立自訂Command

    3.1 添加自訂Command

    VS外掛程式通常透過添加自訂Command來提供新的功能。以下步驟展示了如何添加一個簡單的Command:

    1. 在VSIX計畫中,右鍵點選「Assets」資料夾,選擇「添加」->「新建項」。

    2. 選擇「Visual Studio Package」樣版,並命名(例如 MyCommandPackage )。

    3. 在新建立的Package類中,添加一個新的Command。

    3.2 設定Command內容

    在Package類中,你需要透過重寫 Initialize 方法來註冊Command。同時,你還需要在 source.extension.vsixmanifest 檔中聲明這個Command。

    publicsealed classMyCommandPackage : Package
    {
    protectedoverridevoidInitialize()
    {
    base.Initialize();
    // 註冊Command
    OleMenuCommandService mcs = GetService(typeof(IMenuCommandService)) as OleMenuCommandService;
    if (null != mcs)
    {
    CommandID menuCommandID = new CommandID(GuidList.guidMyCommandPackageCmdSet, (int)PkgCmdIDList.cmdidMyCommand);
    MenuCommand menuItem = new MenuCommand(MenuItemCallback, menuCommandID);
    mcs.AddCommand(menuItem);
    }
    }
    privatevoidMenuItemCallback(object sender, EventArgs e)
    {
    // Command執行邏輯
    System.Windows.Forms.MessageBox.Show("Hello, VSIX!");
    }
    }

    source.extension.vsixmanifest 檔中,你需要添加對Command的聲明,並指定其顯示名稱、圖示等。

    3.3 偵錯外掛程式

    開發過程中,偵錯外掛程式是非常重要的環節。以下步驟展示了如何偵錯VS外掛程式:

    1. 設定斷點(例如,在 MenuItemCallback 方法中)。

    2. 選擇「偵錯」->「啟動偵錯」,或者按F5鍵啟動偵錯。

    3. Visual Studio將啟動一個實驗例項,你可以在這個例項中測試你的外掛程式。

    4. 執行自訂Command,觀察斷點是否被觸發,並檢查輸出是否符合預期。

    四、C#範例程式碼

    4.1 Hello World 範例

    以下是一個簡單的Hello World C#控制台應用程式範例,雖然它不是VS外掛程式的一部份,但展示了C#程式的基本結構。

    using System;
    classProgram
    {
    staticvoidMain()
    {
    Console.WriteLine("Hello, World!");
    }
    }

    4.2 自訂VS外掛程式Command範例

    結合前面的步驟,這裏是一個完整的VS外掛程式Command範例,它展示了如何在VS中註冊並執行一個簡單的Command。

    using System;
    using System.ComponentModel.Design;
    using System.Runtime.InteropServices;
    using Microsoft.VisualStudio.Shell;
    using Microsoft.VisualStudio.Shell.Interop;
    namespaceMyVSIXProject
    {
    [PackageRegistration(UseManagedResourcesOnly = true, AllowsBackgroundLoading = true)]
    [InstalledProductRegistration("#110""#112""1.0", IconResourceID = 400)// 這些資訊需要在資原始檔中定義
    [ProvideMenuResource("Menus.ctmenu", 1)]
    [Guid(GuidList.guidMyCommandPackageString)]
    publicsealed classMyCommandPackage : AsyncPackage
    {
    protectedoverrideasync Task InitializeAsync(CancellationToken cancellationToken, IProgress<ServiceProgressData> progress)
    {
    await JoinableTaskFactory.SwitchToMainThreadAsync(cancellationToken);
    // 註冊Command
    OleMenuCommandService mcs = await GetServiceAsync(typeof(IMenuCommandService)) as OleMenuCommandService;
    if (mcs != null)
    {
    CommandID menuCommandID = new CommandID(GuidList.guidMyCommandPackageCmdSet, (int)PkgCmdIDList.cmdidMyCommand);
    MenuCommand menuItem = new MenuCommand(this.MenuItemCallback, menuCommandID);
    mcs.AddCommand(menuItem);
    }
    }
    privatevoidMenuItemCallback(object sender, EventArgs e)
    {
    // Command執行邏輯
    ThreadHelper.ThrowIfNotOnUIThread();
    MessageBox.Show("Hello, VSIX!");
    }
    }
    }

    註意:上述程式碼中使用了 AsyncPackage Task ,這是Visual Studio 2015及以後版本推薦的異步初始化方式。

    五、釋出VS外掛程式

    開發完成後,你需要將外掛程式打包為VSIX檔,以便分發和安裝。以下步驟展示了如何打包和釋出VS外掛程式:

    1. 在VS中,右鍵點選VSIX計畫,選擇「生成」。

    2. 編譯完成後,在輸出目錄中找到生成的VSIX檔。

    3. 將VSIX檔分發給使用者,使用者可以透過雙擊該檔來安裝外掛程式。

    六、總結

    透過本文,我們詳細介紹了如何在Visual Studio 2022中開發外掛程式,包括準備開發環境、建立VSIX計畫、添加自訂Command、偵錯外掛程式以及釋出外掛程式等步驟。同時,我們還透過C#範例程式碼展示了外掛程式開發中的一些基本技巧和概念。希望這些內容能夠幫助你更好地理解和使用Visual Studio外掛程式開發功能。

    外掛程式開發是提升VS功能、提高開發效率的重要手段。透過不斷地實踐和探索,你可以開發出更加豐富和強大的VS外掛程式,為開發工作帶來更多便利和樂趣。