將程式碼片段散發為 Visual Studio 延伸模組

您可以使用 [程式碼片段管理員],將您的程式碼片段提供給您的朋友,並讓他們在自己的電腦上安裝程式碼片段。 不過,如果您有數個程式碼片段要散發,或想要更廣泛地散發,您可在 Visual Studio 延伸模組中包含您的程式碼片段檔案。 然後,Visual Studio 使用者可以安裝此延伸模組以取得程式碼片段。

必要條件

安裝 Visual Studio 延伸模組開發工作負載,以存取 [VSIX 專案] 專案範本。

Visual Studio 延伸模組開發工作負載

設定延伸模組目錄結構

在此程序中,您將使用在逐步解說:建立程式碼片段中所建立之相同的 Hello World 程式碼片段。 本文提供程式碼片段 XML,所以您不必回頭建立程式碼片段。

  1. TestSnippet從 [空的 VSIX 專案] 範本建立新專案,並為專案命名。

  2. 在 [TestSnippet] 專案中,新增 XML 檔案並將其稱之為 VBCodeSnippet.snippet ([.snippet] 是新的副檔名)。 使用下列 XML 取代此內容:

    <?xml version="1.0" encoding="utf-8"?>
    <CodeSnippets
        xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
      <CodeSnippet Format="1.0.0">
        <Header>
          <Title>Hello World VB</Title>
          <Shortcut>HelloWorld</Shortcut>
          <Description>Inserts code</Description>
          <Author>MSIT</Author>
          <SnippetTypes>
            <SnippetType>Expansion</SnippetType>
            <SnippetType>SurroundsWith</SnippetType>
          </SnippetTypes>
        </Header>
        <Snippet>
          <Code Language="VB">
            <![CDATA[Console.WriteLine("Hello, World!")]]>
          </Code>
        </Snippet>
      </CodeSnippet>
    </CodeSnippets>
    
  3. 在 [方案總管] 中,選取專案節點並新增資料夾,其名稱為在 [程式碼片段管理員] 中您要讓程式碼片段具有的名稱。 在此情況下,它應該是 HelloWorldVB

  4. .snippet 檔案移至 HelloWorldVB 資料夾。

  5. 在 [方案總管] 中選取此 .snippet 檔案,然後確認 [屬性] 視窗的 [建置動作] 已設為 [內容]、[複製到輸出目錄] 已設為 [一律複製],且 [包含在 VSIX] 已設為 [true]

新增 .pkgdef 檔

  1. 將文字檔新增至 HelloWorldVB 資料夾,並將它命名為 HelloWorldVB.pkgdef。 這個檔案用來將特定機碼加入登錄。 如需詳細資訊,請參閱檢視片段的登錄 (選擇性)

  2. 將下列各行加入檔案。

    // Visual Basic
    [$RootKey$\Languages\CodeExpansions\Basic\Paths]
    "HelloWorldVB"="$PackageFolder$"
    

    如果檢查此機碼,就可以確認如何指定 Visual Basic 以外的語言。

  3. 在 [方案總管] 中選取 .pkgdef 檔案,然後在 [屬性] 視窗中確認:

    • [建置動作] 設定為 [內容]
    • [複製到輸出目錄] 設定為 [一律複製]
    • [包含在 VSIX] 設定為 [true]
  4. .pkgdef 檔新增為 VSIX 資訊清單中的資產。 在 source.extension.vsixmanifest 檔案中,移至 [資產] 索引標籤,然後按一下 [新增]

  5. 在 [新增資產] 對話方塊中,將 [類型] 設為 [Microsoft.VisualStudio.VsPackage]、將 [來源] 設為 [檔案系統上的檔案],並將 [路徑] 設為 [HelloWorldVB.pkgdef] (這應該會出現在下拉式清單中)。 選取 [確定] 以儲存這個新資產。

註冊程式碼片段

  1. 移至 [工具]> [程式碼片段管理員],並將 [語言] 設定為 [基本]

  2. 選取 [新增...],瀏覽至方案目錄的 HelloWorldVB 資料夾,然後選取 [選取資料夾]

  3. HelloWorldVB 現在是其中一個程式碼片段資料夾。 展開資料夾以查看 HelloWorldVB 程式碼片段。 選取 [確定] 以儲存這個新增的資料夾。

測試程式碼片段

現在您可以確定程式碼片段適用於 Visual Studio 的實驗性執行個體。 此實驗性執行個體是 Visual Studio 的第二個複本,這複本與您用來撰寫程式碼的不同。 它可讓您處理擴充功能,而不會影響您的開發環境。

  1. 建置此專案並開始偵錯。

    Visual Studio 的第二個執行個體隨即出現。

  2. 測試程式碼片段。 在實驗性執行個體中,開啟 Visual Basic 專案,並開啟其中一個程式碼檔案。 將游標放在程式碼中的某處,按一下滑鼠右鍵,然後在 [捷徑功能表] 上依序選取 [程式碼片段]、[插入程式碼片段]

  3. 按兩下 [HelloWorldVB] 資料夾。 您應該會看到快顯視窗 [插入程式碼片段:HelloWorldVB >],其中具有下拉式清單 [HelloWorldVB]。 按兩下這個 [HelloWorldVB] 下拉式清單。

    會將下行新增至程式碼檔案:

    Console.WriteLine("Hello, World!")
    

檢視片段的登錄 (選擇性)

[.pkgdef] 檔案用來將特定機碼加入登錄。 註冊程式碼片段之後,如需在私人登錄區檢視登錄機碼,可在下列子機碼下找到它們:

Visual Studio 2022:HKEY_USERS\IsolatedHiveName\Software\Microsoft\VisualStudio\17.0_configID\Languages\CodeExpansions\Basic\Paths

Visual Studio 2019:HKEY_USERS\IsolatedHiveName\Software\Microsoft\VisualStudio\16.0_configID\Languages\CodeExpansions\Basic\Paths

若要在這個位置檢視登錄機碼,請先關閉 Visual Studio、開啟登錄編輯程式,然後將私人登錄區載入 [HKEY_USERS]

重要

如果選取「登錄」,啟動 Visual Studio 之前,請務必先卸載私人登錄區。

例如,登錄機碼可能如這裡所示。

螢幕擷取畫面,其中顯示了程式碼片段登錄機碼。