Distribuire frammenti di codice come estensione di Visual Studio

È sufficiente distribuire i frammenti di codice ad altri utenti, che dovranno installarli nei computer con Gestione frammenti di codice. Se si hanno diversi frammenti da distribuire o si vuole distribuirli più ampiamente, tuttavia, è possibile includere il file di frammento in un'estensione di Visual Studio. Gli utenti di Visual Studio possono quindi installare l'estensione per ottenere i frammenti di codice.

Prerequisiti

Installare il carico di lavoro Sviluppo di estensioni di Visual Studio per ottenere l'accesso ai modelli del progetto VSIX.

Carico di lavoro Sviluppo di estensioni di Visual Studio

Configurare la struttura della directory di estensione

In questa procedura si userà lo stesso frammento di codice Hello World creato in Procedura dettagliata: Creare un frammento di codice. Questo articolo specifica il frammento di codice XML, quindi non è necessario tornare indietro e creare un frammento di codice.

  1. Creare un nuovo progetto dal modello Progetto VSIX vuoto e denominare il progetto TestSnippet.

  2. Nel progetto TestSnippet aggiungere un nuovo file XML e chiamarlo VBCodeSnippet.snippet (.snippet è la nuova estensione di file). Sostituire il contenuto con il codice XML riportato di seguito:

    <?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. In Esplora soluzioni selezionare il nodo del progetto e aggiungere una cartella contenente il nome che si vuole assegnare al frammento di codice in Gestione frammenti di codice. In questo caso, dovrebbe essere HelloWorldVB.

  4. Spostare il file con estensione snippet nella cartella HelloWorldVB.

  5. Selezionare il file SNIPPET in Esplora soluzioni e nella finestra Proprietà verificare che Azione di compilazione sia impostato su Contenuto, Copia nella directory di output sia impostato su Copia sempre e Includi in VSIX sia impostato su true.

Aggiunta del file con estensione pkgdef

  1. Aggiungere un file di testo alla cartella HelloWorldVB e denominarlo HelloWorldVB.pkgdef. Questo file consente di aggiungere alcune chiavi nel Registro di sistema. Per altre informazioni, vedere Visualizzare il Registro di sistema per il frammento di codice (facoltativo).

  2. Aggiungere al file il codice seguente:

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

    Se si esamina questa chiave, è possibile vedere come specificare lingue diverse da Visual Basic.

  3. Selezionare il file PKGDEF in Esplora soluzioni e nella finestra Proprietà verificare che:

    • L'azione di compilazione sia impostata su Contenuto
    • L'opzione Copia nella directory di output sia impostata su Copia sempre
    • L'opzione Includi in VSIX sia impostata su true
  4. Aggiungere il file con estensione pkgdef come una risorsa nel manifesto VSIX. Nel file source.extension.vsixmanifest passare alla scheda Asset e fare clic su Nuovo.

  5. Nella finestra di dialogo Aggiungi nuovo asset impostare Tipo su Microsoft.VisualStudio.VsPackage, Origine su File in filesystem e Percorso su HelloWorldVB.pkgdef (che dovrebbe essere visualizzato nell'elenco a discesa). Selezionare OK per salvare il nuovo asset.

Registrare il frammento di codice

  1. Passare a Strumenti>Gestione frammenti di codice e impostare Language su Basic.

  2. Selezionare Aggiungi..., passare alla cartella HelloWorldVB della directory della soluzione e selezionare Seleziona cartella.

  3. HelloWorldVB è ora una delle cartelle del frammento di codice. Espandere la cartella per visualizzare il frammento helloWorldVB . Selezionare OK per salvare la cartella appena aggiunta.

Test del frammento di codice

A questo punto è possibile assicurarsi che il frammento di codice funzioni nell'istanza sperimentale di Visual Studio. L'istanza sperimentale è una seconda copia di Visual Studio, separata da quella usata per scrivere codice. Consente di lavorare su un'estensione senza impatto sull'ambiente di sviluppo.

  1. Compilare il progetto e avviare il debug.

    Verrà visualizzata una seconda istanza di Visual Studio.

  2. Eseguire il test del frammento di codice. Nell'istanza sperimentale aprire un progetto Visual Basic e uno dei file di codice. Posizionare il cursore in un punto qualsiasi del codice, fare clic con il pulsante destro del mouse e scegliere Frammento di codice dal menu di scelta rapida, quindi Inserisci frammento.

  3. Fare doppio clic sulla cartella HelloWorldVB . Verrà visualizzato un popup Inserisci frammento: HelloWorldVB > con un elenco a discesa HelloWorldVB. Fare doppio clic sull'elenco a discesa HelloWorldVB .

    La riga seguente viene aggiunta al file di codice:

    Console.WriteLine("Hello, World!")
    

Visualizzare il Registro di sistema per il frammento di codice (facoltativo)

Il file con estensione pkgdef viene usato per aggiungere determinate chiavi al Registro di sistema. Dopo aver registrato il frammento di codice, se è necessario visualizzare le chiavi del Registro di sistema nell'hive del Registro di sistema privato, è possibile trovarle nella sottochiave seguente:

Visual Studio 2022: HKEY_U edizione Standard RS\IsolatedHiveName\Software\Microsoft\VisualStudio\17.0_configID\Languages\CodeExpansions\Basic\Paths

Visual Studio 2019: HKEY_U edizione Standard RS\IsolatedHiveName\Software\Microsoft\VisualStudio\16.0_configID\Languages\CodeExpansions\Basic\Paths

Per visualizzare le chiavi del Registro di sistema in questo percorso, chiudere prima Visual Studio, aprire l'editor del Registro di sistema e quindi caricare l'hive del Registro di sistema privato in HKEY_U edizione Standard RS.

Importante

Se si controlla il Registro di sistema, assicurarsi di scaricare l'hive del Registro di sistema privato prima di avviare Visual Studio.

Ad esempio, le chiavi del Registro di sistema possono essere visualizzate come illustrato di seguito.

Screenshot delle chiavi del Registro di sistema per i frammenti di codice.