Dystrybuowanie fragmentów kodu jako rozszerzenia programu Visual Studio

Fragmenty kodu można przekazać znajomym i zainstalować fragmenty kodu na własnych komputerach przy użyciu menedżera fragmentów kodu. Jeśli jednak masz kilka fragmentów kodu do dystrybucji lub chcesz rozpowszechnić je szerzej, możesz uwzględnić pliki fragmentów kodu w rozszerzeniu programu Visual Studio. Użytkownicy programu Visual Studio mogą następnie zainstalować rozszerzenie w celu uzyskania fragmentów kodu.

Wymagania wstępne

Zainstaluj obciążenie programistyczne rozszerzenia programu Visual Studio, aby uzyskać dostęp do szablonów projektu VSIX.

Obciążenie programistyczne rozszerzenia programu Visual Studio

Konfigurowanie struktury katalogów rozszerzeń

W tej procedurze użyjesz tego samego fragmentu kodu Hello World utworzonego w przewodniku: Tworzenie fragmentu kodu. Ten artykuł zawiera kod XML fragmentu kodu, więc nie trzeba wracać i tworzyć fragmentu kodu.

  1. Utwórz nowy projekt na podstawie szablonu Empty VSIX Project (Pusty projekt VSIX) i nadaj projektowi TestSnippetnazwę .

  2. W projekcie TestSnippet dodaj nowy plik XML i wywołaj go VBCodeSnippet.snippet (fragment kodu jest nowym rozszerzeniem pliku). Zastąp zawartość następującym kodem 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. W Eksplorator rozwiązań wybierz węzeł projektu i dodaj folder o nazwie, który ma mieć fragment kodu w Menedżerze fragmentów kodu. W tym przypadku powinna to być wartość HelloWorldVB.

  4. Przenieś plik fragmentu kodu do folderu HelloWorldVB .

  5. Wybierz plik fragmentu kodu w Eksplorator rozwiązań, a w oknie Właściwości upewnij się, że akcja kompilacji jest ustawiona na Zawartość, opcja Kopiuj do katalogu wyjściowego jest ustawiona na Wartość Kopiuj zawsze, a opcja Uwzględnij w vsIX jest ustawiona na wartość true.

Dodawanie pliku pkgdef

  1. Dodaj plik tekstowy do folderu HelloWorldVB i nadaj mu nazwę HelloWorldVB.pkgdef. Ten plik służy do dodawania niektórych kluczy do rejestru. Aby uzyskać więcej informacji, zobacz Wyświetlanie rejestru dla fragmentu kodu (opcjonalnie).

  2. Dodaj następujące wiersze do pliku.

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

    Jeśli zbadasz ten klucz, możesz zobaczyć, jak określić języki inne niż Visual Basic.

  3. Wybierz plik pkgdef w Eksplorator rozwiązań, a w oknie Właściwości upewnij się, że:

    • Akcja kompilacji jest ustawiona na Zawartość
    • Kopiuj do katalogu wyjściowego jest ustawiona wartość Kopiuj zawsze
    • Właściwość Uwzględnij w vsIX jest ustawiona na wartość true
  4. Dodaj plik pkgdef jako element zawartości w manifeście VSIX. W pliku source.extension.vsixmanifest przejdź do karty Zasoby i kliknij pozycję Nowy.

  5. W oknie dialogowym Dodawanie nowego elementu zawartości ustaw wartość Typ na Microsoft.VisualStudio.VsPackage, źródło do pliku w systemie plików i ścieżkę do wartości HelloWorldVB.pkgdef (która powinna pojawić się na liście rozwijanej). Wybierz przycisk OK , aby zapisać ten nowy zasób.

Rejestrowanie fragmentu kodu

  1. Przejdź do pozycji Narzędzia>Menedżer fragmentów kodu i ustaw pozycję Język na Podstawowa.

  2. Wybierz pozycję Dodaj..., przejdź do folderu HelloWorldVB katalogu rozwiązania, a następnie wybierz pozycję Wybierz folder.

  3. HelloWorldVB jest teraz jednym z folderów fragmentów kodu. Rozwiń folder, aby wyświetlić fragment kodu HelloWorldVB . Wybierz przycisk OK , aby zapisać ten nowo dodany folder.

Testowanie fragmentu kodu

Teraz możesz upewnić się, że fragment kodu działa w eksperymentalnym wystąpieniu programu Visual Studio. Wystąpienie eksperymentalne to druga kopia programu Visual Studio, która jest oddzielona od używanego do pisania kodu. Umożliwia ona pracę nad rozszerzeniem bez wpływu na środowisko deweloperskie.

  1. Skompiluj projekt i rozpocznij debugowanie.

    Zostanie wyświetlone drugie wystąpienie programu Visual Studio.

  2. Przetestuj fragment kodu. W wystąpieniu eksperymentalnym otwórz projekt Visual Basic i otwórz jeden z plików kodu. Umieść kursor w kodzie, kliknij prawym przyciskiem myszy, a następnie w menu kontekstowym wybierz pozycję Fragment kodu, a następnie wstaw fragment kodu.

  3. Kliknij dwukrotnie folder HelloWorldVB. Powinien zostać wyświetlony wyskakujący fragment wstawki: HelloWorldVB z listą rozwijaną HelloWorldVB>. Kliknij dwukrotnie listę rozwijaną HelloWorldVB .

    Następujący wiersz jest dodawany do pliku kodu:

    Console.WriteLine("Hello, World!")
    

Wyświetlanie rejestru dla fragmentu kodu (opcjonalnie)

Plik pkgdef służy do dodawania niektórych kluczy do rejestru. Po zarejestrowaniu fragmentu kodu, jeśli chcesz wyświetlić klucze rejestru w gałęzi rejestru prywatnego, możesz je znaleźć w następującym podkluczu:

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

Aby wyświetlić klucze rejestru w tej lokalizacji, najpierw zamknij program Visual Studio, otwórz edytor rejestru, a następnie załaduj gałąź rejestru prywatnego do HKEY_USERS.

Ważne

Jeśli sprawdzisz rejestr, przed uruchomieniem programu Visual Studio upewnij się, że zwolnisz gałąź rejestru prywatnego.

Na przykład klucze rejestru mogą być wyświetlane, jak pokazano tutaj.

Zrzut ekranu przedstawiający klucze rejestru dla fragmentów kodu.