Распространение фрагментов кода в виде расширения Visual Studio
Фрагменты кода можно передать другим пользователям для установки на других компьютерах с помощью диспетчера фрагментов кода. Однако если нужно распространить несколько фрагментов или распространить фрагмент более широко, файл фрагмента можно включить в расширение Visual Studio. Пользователи Visual Studio могут установить это расширение, чтобы получить фрагменты кода.
Необходимые компоненты
Установите рабочую нагрузку Разработка расширений Visual Studio, чтобы получить доступ к шаблонам проектов Проект VSIX.
Настройка структуры каталогов расширений
В этой процедуре вы будете использовать тот же фрагмент кода Hello World, который создан в Пошаговом руководстве. Создание фрагмента кода. Эта статья содержит XML-код фрагмента, поэтому вам не придется возвращаться и создавать его.
Создайте проект из шаблона пустого проекта VSIX и присвойте проекту
TestSnippet
имя.В проекте 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>
В обозревателе решений выберите узел проекта и добавьте папку с именем, которое должен иметь фрагмент в диспетчере фрагментов кода. В этом случае это имя HelloWorldVB.
Переместите файл SNIPPET в папку HelloWorldVB.
Выберите файл SNIPPET в обозревателе решений и установите в окне Свойства для свойства Действие сборки значение Содержимое, для свойства Копировать в выходной каталог — значение Всегда копировать, а для свойства Включить в VSIX — значение true.
Добавление файла PKGDEF
Добавьте в папку HelloWorldVB текстовый файл и присвойте ему имя HelloWorldVB.pkgdef. Этот файл служит для добавления ряда разделов в реестр. Дополнительные сведения см. в разделе "Просмотр реестра" для фрагмента кода (необязательно).
Добавьте в файл указанные ниже строки.
// Visual Basic [$RootKey$\Languages\CodeExpansions\Basic\Paths] "HelloWorldVB"="$PackageFolder$"
Если вы изучите этот ключ, вы увидите, как указать языки, отличные от Visual Basic.
Выберите в обозревателе решений файл PKGDEF и в окне Свойства проследите за тем, чтобы были заданы следующие свойства:
- Действие сборки — Содержимое;
- Копировать в выходной каталог — Всегда копировать;
- Включить в VSIX — true.
Добавьте файл PKGDEF в качестве ресурса в манифест VSIX. В файле source.extension.vsixmanifest перейдите на вкладку Активы и нажмите Создать.
В диалоговом окне Добавить новый актив выберите для параметра Тип значение Microsoft.VisualStudio.VsPackage, для параметра Источник — значение Файл в файловой системе, а для параметра Путь — значение HelloWorldVB.pkgdef (выберите его в раскрывающемся списке). Нажмите кнопку "ОК" , чтобы сохранить этот новый ресурс.
Регистрация фрагмента кода
Перейдите к диспетчеру фрагментов кода инструментов>и задайте для языка значение "Базовый".
Выберите "Добавить...", перейдите в папку HelloWorldVB каталога решения и выберите "Выбрать папку".
HelloWorldVB теперь является одной из папок фрагмента кода. Разверните папку, чтобы просмотреть фрагмент кода HelloWorldVB . Нажмите кнопку "ОК ", чтобы сохранить новую добавленную папку.
Тестирование фрагмента кода
Теперь можно проверить, правильно ли работает фрагмент, в экспериментальном экземпляре Visual Studio. Экспериментальный экземпляр — это вторая копия Visual Studio, отличная от той, в которой вы пишете код. Он позволяет работать с расширением, не оказывая влияния на среду разработки.
Выполните сборку решения и запустите отладку.
Откроется второй экземпляр Visual Studio.
Протестируйте фрагмент кода. В экспериментальном экземпляре откройте проект Visual Basic, а затем откройте один из файлов кода. Поместите курсор в код, щелкните правой кнопкой мыши и в контекстном меню выберите фрагмент кода, а затем вставьте фрагмент кода.
Дважды щелкните папку 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.
Например, разделы реестра могут отображаться, как показано здесь.