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.
- 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
Aggiornare l'estensione vsixmanifest con le informazioni corrette sul nome del prodotto, sull'autore e sulla versione.
Compilare l'estensione in modalità rilascio . L'estensione verrà ora inserita nel pacchetto come VSIX nella cartella \bin\Release.
È 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.
In Visual Studio avviare il debug. per aprire un'istanza sperimentale di Visual Studio.
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.
Nel menu Strumenti assicurarsi di visualizzare il comando di test.
Pubblicare l'estensione nel Marketplace tramite la riga di comando
Assicurarsi di aver compilato la versione release dell'estensione e che sia aggiornata.
Assicurarsi di aver creato i file publishmanifest.json e overview.md.
Aprire la riga di comando e passare alla directory ${VSInstallDir}\VSSDK\VisualStudioIntegration\Tools\Bin\.
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.}"
Al termine della pubblicazione dell'estensione, verrà visualizzato il seguente messaggio della riga di comando:
Uploaded 'MyVsixExtension' to the Marketplace.
È 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.
In Visual Studio scegliere Estensioni e Aggiornamenti dal menu Strumenti.
Fare clic su Online e quindi cercare TestPublish.
Fare clic su Scarica. L'estensione verrà quindi pianificata per l'installazione.
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
Se si vuole rimuovere un'estensione, usare il comando seguente:
VsixPublisher.exe deleteExtension -publisherName "TestVSIXPublisher" -extensionName "MyVsixExtension"
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
In Visual Studio scegliere Estensioni e Aggiornamenti dal menu Strumenti.
Selezionare "MyVsixExtension" e quindi fare clic su Disinstalla. L'estensione verrà quindi pianificata per la disinstallazione.
Per completare la disinstallazione, chiudere tutte le istanze di Visual Studio.