Распространение фрагментов кода в виде расширения Visual Studio

Фрагменты кода можно передать другим пользователям для установки на других компьютерах с помощью диспетчера фрагментов кода. Однако если нужно распространить несколько фрагментов или распространить фрагмент более широко, файл фрагмента можно включить в расширение Visual Studio. Пользователи Visual Studio могут установить это расширение, чтобы получить фрагменты кода.

Необходимые компоненты

Установите рабочую нагрузку Разработка расширений Visual Studio, чтобы получить доступ к шаблонам проектов Проект VSIX.

Рабочая нагрузка

Настройка структуры каталогов расширений

В этой процедуре вы будете использовать тот же фрагмент кода Hello World, который создан в Пошаговом руководстве. Создание фрагмента кода. Эта статья содержит XML-код фрагмента, поэтому вам не придется возвращаться и создавать его.

  1. Создайте проект из шаблона пустого проекта VSIX и присвойте проекту TestSnippetимя.

  2. В проекте TestSnippet добавьте новый XML-файл и вызовите его VBCodeSnippet.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.

Например, разделы реестра могут отображаться, как показано здесь.

Снимок экрана: разделы реестра для фрагментов кода.