Procedura dettagliata: Pubblicazione di un'estensione di Visual Studio tramite la riga di comando

Questa procedura dettagliata illustra come pubblicare un'estensione di Visual Studio in Visual Studio Marketplace usando la riga di comando. Quando si aggiunge l'estensione al Marketplace, gli sviluppatori possono usare la finestra di dialogo Estensioni e Aggiornamenti per cercare le estensioni nuove e aggiornate.

VsixPublisher.exe è lo strumento da riga di comando per la pubblicazione di estensioni di Visual Studio nel Marketplace. È possibile accedervi da ${VSInstallDir}\VSSDK\VisualStudioIntegration\Tools\Bin\VsixPublisher.exe. I comandi disponibili in questo strumento sono: publish, deletePublisher, deleteExtension, login, logout.

Comandi

Pubblica...

Pubblica un'estensione nel Marketplace. L'estensione può essere un vsix, un file exe/msi o un collegamento. Se l'estensione esiste già con la stessa versione, sovrascriverà l'estensione. Se l'estensione non esiste già, verrà creata una nuova estensione.

Opzioni di comando Descrizione
payload (obbligatorio) Percorso del payload da pubblicare o un collegamento da usare come "URL altre informazioni".
publishManifest (obbligatorio) Percorso del file manifesto di pubblicazione da usare.
ignoreWarnings Elenco di avvisi da ignorare durante la pubblicazione di un'estensione. Questi avvisi vengono visualizzati come messaggi della riga di comando durante la pubblicazione di un'estensione. (ad esempio, "VSIXValidatorWarning01, VSIXValidatorWarning02")
personalAccessToken Token di accesso personale (PAT) usato per autenticare il server di pubblicazione. Se non specificato, il token di accesso personale viene acquisito dagli utenti connessi.
VsixPublisher.exe publish -payload "{path to vsix}" -publishManifest "{path to vs-publish.json}" -ignoreWarnings "VSIXValidatorWarning01,VSIXValidatorWarning02"

deletePublisher

Elimina un editore nel Marketplace.

Opzioni di comando Descrizione
publisherName (obbligatorio) Nome del server di pubblicazione, ad esempio l'identificatore.
personalAccessToken (obbligatorio) Token di accesso personale usato per autenticare il server di pubblicazione.
VsixPublisher.exe deletePublisher -publisherName "{Publisher Name}" -personalAccessToken "{Personal Access Token}"

deleteExtension

Elimina un'estensione dal Marketplace.

Opzioni di comando Descrizione
extensionName (obbligatorio) Nome dell'estensione da eliminare.
publisherName (obbligatorio) Nome del server di pubblicazione, ad esempio l'identificatore.
personalAccessToken Token di accesso personale usato per autenticare il server di pubblicazione. Se non specificato, il pat viene acquisito dagli utenti connessi.
VsixPublisher.exe deleteExtension -extensionName "{Extension Name}" -publisherName "{Publisher Name}"

login

Registra un server di pubblicazione nel computer.

Opzioni di comando Descrizione
personalAccessToken (obbligatorio) Token di accesso personale usato per autenticare il server di pubblicazione.
publisherName (obbligatorio) Nome del server di pubblicazione, ad esempio l'identificatore.
overwrite Specifica che qualsiasi autore esistente deve essere sovrascritto con il nuovo token di accesso personale.
VsixPublisher.exe login -personalAccessToken "{Personal Access Token}" -publisherName "{Publisher Name}"

logout

Registra un server di pubblicazione dal computer.

Opzioni di comando Descrizione
publisherName (obbligatorio) Nome del server di pubblicazione, ad esempio l'identificatore.
ignoreMissingPublisher Specifica che lo strumento non deve eseguire l'errore se il server di pubblicazione specificato non è già connesso.
VsixPublisher.exe logout -publisherName "{Publisher Name}"

createPublisher

Attenzione

Questo comando non è più disponibile. È possibile creare un nuovo editore passando a Visual Studio Marketplace.

file publishManifest

Un file publishManifest viene usato dal comando publish . Rappresenta tutti i metadati relativi all'estensione che il Marketplace deve conoscere. Se l'estensione caricata proviene da un'estensione VSIX, la proprietà "identity" deve avere solo il set "internalName". Ciò è dovuto al fatto che il resto delle proprietà "identity" può essere generato dal file vsixmanifest. Se l'estensione è msi/exe o un'estensione di collegamento, l'utente deve fornire i campi obbligatori nella proprietà "identity". Il resto del manifesto contiene informazioni specifiche per il Marketplace(ad esempio, categorie, se Q&A è abilitato e così via).

Esempio di file publishManifest dell'estensione VSIX:

{
    "$schema": "http://json.schemastore.org/vsix-publish",
    "categories": [ "build", "coding" ],  // The categories of the extension. Between 1 and 3 categories are required.
    "identity": {
        "internalName": "MyVsixExtension" // If not specified, we try to generate the name from the display name of the extension in the vsixmanifest file.
                                            // Required if the display name is not the actual name of the extension.
    },
    "overview": "overview.md",            // Path to the "readme" file that gets uploaded to the Marketplace. Required.
    "priceCategory": "free",              // Either "free", "trial", or "paid". Defaults to "free".
    "publisher": "MyPublisherName",       // The name of the publisher. Required.
    "private": false,                     // Specifies whether or not the extension should be public when uploaded. Defaults to false.
    "qna": true,                          // Specifies whether or not the extension should have a Q&A section. Defaults to true.
    "repo": "https://github.com/MyPublisherName/MyVsixExtension" // Not required.
}

Esempio di file MSI/EXE o LINK publishManifest:

{
    "$schema": "http://json.schemastore.org/vsix-publish",
    "categories": [ "build", "coding" ],
    "identity": {
        "description": "My extension.", // The description of the extension. Required for non-vsix extensions.
        "displayName": "My Extension",  // The display name of the extension. Required for non-vsix extensions.
        "icon": "\\path\\to\\icon.ico", // The path to an icon file (can be relative to the json file location). Required for non-vsix extensions.
        "installTargets": [             // The installation targets for the extension. Required for non-vsix extensions.
            {
                "sku": "Microsoft.VisualStudio.Community",
                "version": "[10.0, 16.0)"
            }
        ],
        "internalName": "MyExtension",
        "language": "en-US",            // The default language id of the extension. Can be in the "1033" or "en-US" format. Required for non-vsix extensions.
        "tags": [ "tag1", "tag2" ],     // The tags for the extension. Not required.
        "version": "3.7.0",             // The version of the extension. Required for non-vsix extensions.
        "vsixId": "MyExtension",        // The vsix id of the extension. Not required but useful for showing updates to installed extensions.
    },
    "overview": "overview.md",
    "priceCategory": "free",
    "publisher": "MyPublisherName",
    "private": false,
    "qna": true,
    "repo": "https://github.com/MyPublisherName/MyVsixExtension"
}

File di asset

I file di asset possono essere forniti per incorporare elementi come immagini nel file leggimi. Ad esempio, se un'estensione include il documento Markdown "overview" seguente:

TestExtension
...
This is test extension.
![Test logo](images/testlogo.png "Test logo")

Per risolvere "images/testlogo.png" nell'esempio precedente, un utente può fornire "assetFiles" nel manifesto di pubblicazione come indicato di seguito:

{
    "assetFiles": [
        {
            "pathOnDisk": "\\path\\to\\logo.png",
            "targetPath": "images/logo.png"
        }
    ],
    // other required fields
}

Procedura dettagliata per la pubblicazione

Prerequisiti

Per seguire questa procedura dettagliata, è necessario installare Visual Studio SDK. Per altre informazioni, vedere Installazione di Visual Studio SDK.

Creare un'estensione di Visual Studio

In questo caso si userà un'estensione VSPackage predefinita, ma gli stessi passaggi sono validi per ogni tipo di estensione.

  1. Creare un VSPackage in C# denominato "TestPublish" con un comando di menu. Per altre informazioni, vedere Creazione della prima estensione: Hello World.

Creare il pacchetto dell'estensione

  1. Aggiornare l'estensione vsixmanifest con le informazioni corrette sul nome del prodotto, sull'autore e sulla versione.

    update extension vsixmanifest

  2. Compilare l'estensione in modalità rilascio . L'estensione verrà ora inserita nel pacchetto come VSIX nella cartella \bin\Release.

  3. È possibile fare doppio clic su VSIX per verificare l'installazione.

Testare l'estensione

Prima di distribuire l'estensione, compilarla e testarla per assicurarsi che sia installata correttamente nell'istanza sperimentale di Visual Studio.

  1. In Visual Studio avviare il debug. per aprire un'istanza sperimentale di Visual Studio.

  2. Nell'istanza sperimentale passare al menu Strumenti e fare clic su Estensioni e Aggiornamenti.... L'estensione TestPublish dovrebbe essere visualizzata nel riquadro centrale e abilitata.

  3. Nel menu Strumenti assicurarsi di visualizzare il comando di test.

Pubblicare l'estensione nel Marketplace tramite la riga di comando

  1. Assicurarsi di aver compilato la versione release dell'estensione e che sia aggiornata.

  2. Assicurarsi di aver creato i file publishmanifest.json e overview.md.

  3. Aprire la riga di comando e passare alla directory ${VSInstallDir}\VSSDK\VisualStudioIntegration\Tools\Bin\.

  4. Per pubblicare una nuova estensione, usare il comando seguente:

    VsixPublisher.exe publish -payload "{Path to vsix file}"  -publishManifest "{path to publishManifest file}"  -personalAccessToken "{Personal Access Token that is used to authenticate the publisher. If not provided, the pat is acquired from the logged-in users.}"
    
  5. Al termine della pubblicazione dell'estensione, verrà visualizzato il seguente messaggio della riga di comando:

    Uploaded 'MyVsixExtension' to the Marketplace.
    
  6. È possibile verificare la nuova estensione pubblicata passando a Visual Studio Marketplace

Installare l'estensione da Visual Studio Marketplace

Dopo aver pubblicato l'estensione, installarla in Visual Studio e testarla.

  1. In Visual Studio scegliere Estensioni e Aggiornamenti dal menu Strumenti.

  2. Fare clic su Online e quindi cercare TestPublish.

  3. Fare clic su Scarica. L'estensione verrà quindi pianificata per l'installazione.

  4. Per completare l'installazione, chiudere tutte le istanze di Visual Studio.

Rimuovere l'estensione

È possibile rimuovere l'estensione da Visual Studio Marketplace e dal computer.

Per rimuovere l'estensione dal Marketplace tramite la riga di comando

  1. Se si vuole rimuovere un'estensione, usare il comando seguente:

    VsixPublisher.exe deleteExtension -publisherName "TestVSIXPublisher" -extensionName "MyVsixExtension"
    
  2. Al termine dell'eliminazione dell'estensione, verrà visualizzato il seguente messaggio della riga di comando:

    Removed 'MyVsixExtension' from the Marketplace.
    

Per rimuovere l'estensione dal computer

  1. In Visual Studio scegliere Estensioni e Aggiornamenti dal menu Strumenti.

  2. Selezionare "MyVsixExtension" e quindi fare clic su Disinstalla. L'estensione verrà quindi pianificata per la disinstallazione.

  3. Per completare la disinstallazione, chiudere tutte le istanze di Visual Studio.