Procédure pas à pas : publication d’une extension Visual Studio via la ligne de commande
Cette procédure pas à pas vous montre comment publier une extension Visual Studio sur Visual Studio Marketplace à l’aide de la ligne de commande. Lorsque vous ajoutez votre extension à la Place de marché, les développeurs peuvent utiliser la boîte de dialogue Extensions et Mises à jour pour y rechercher les extensions nouvelles et mises à jour.
VsixPublisher.exe est l’outil en ligne de commande permettant de publier des extensions Visual Studio sur la Place de marché. Il est accessible à partir de ${VSInstallDir}\VSSDK\VisualStudioIntegration\Tools\Bin\VsixPublisher.exe. Les commandes disponibles sur cet outil sont les suivantes : publish, deletePublisher, deleteExtension, login, logout.
Commandes
Publier...
Publie une extension sur la Place de marché. L’extension peut être un vsix, un fichier exe/msi ou un lien. Si l’extension existe déjà avec la même version, elle remplace l’extension. Si l’extension n’existe pas déjà, elle crée une extension.
Options de commande | Description |
---|---|
charge utile (obligatoire) | Chemin d’accès à la charge utile pour publier ou un lien à utiliser comme « URL d’informations supplémentaires ». |
publishManifest (obligatoire) | Chemin d’accès au fichier manifeste de publication à utiliser. |
ignoreWarnings | Liste des avertissements à ignorer lors de la publication d’une extension. Ces avertissements sont affichés en tant que messages de ligne de commande lors de la publication d’une extension. (par exemple, « VSIXValidatorWarning01, VSIXValidatorWarning02 ») |
personalAccessToken | Jeton d’accès personnel (PAT) utilisé pour authentifier l’éditeur. S’il n’est pas fourni, le pater est acquis auprès des utilisateurs connectés. |
VsixPublisher.exe publish -payload "{path to vsix}" -publishManifest "{path to vs-publish.json}" -ignoreWarnings "VSIXValidatorWarning01,VSIXValidatorWarning02"
deletePublisher
Supprime un éditeur sur la Place de marché.
Options de commande | Description |
---|---|
publisherName (obligatoire) | Nom de l’éditeur (par exemple, l’identificateur). |
personalAccessToken (obligatoire) | Jeton d’accès personnel utilisé pour authentifier l’éditeur. |
VsixPublisher.exe deletePublisher -publisherName "{Publisher Name}" -personalAccessToken "{Personal Access Token}"
deleteExtension
Supprime une extension de la Place de marché.
Options de commande | Description |
---|---|
extensionName (obligatoire) | Nom de l’extension à supprimer. |
publisherName (obligatoire) | Nom de l’éditeur (par exemple, l’identificateur). |
personalAccessToken | Jeton d’accès personnel utilisé pour authentifier l’éditeur. S’il n’est pas fourni, le pat est acquis auprès des utilisateurs connectés. |
VsixPublisher.exe deleteExtension -extensionName "{Extension Name}" -publisherName "{Publisher Name}"
nom de connexion
Consigne un serveur de publication sur la machine.
Options de commande | Description |
---|---|
personalAccessToken (obligatoire | Jeton d’accès personnel utilisé pour authentifier l’éditeur. |
publisherName (obligatoire) | Nom de l’éditeur (par exemple, l’identificateur). |
overwrite | Spécifie que tout éditeur existant doit être remplacé par le nouveau jeton d’accès personnel. |
VsixPublisher.exe login -personalAccessToken "{Personal Access Token}" -publisherName "{Publisher Name}"
logout
Journalise un éditeur hors de l’ordinateur.
Options de commande | Description |
---|---|
publisherName (obligatoire) | Nom de l’éditeur (par exemple, l’identificateur). |
ignoreMissingPublisher | Spécifie que l’outil ne doit pas se produire d’erreur si l’éditeur spécifié n’est pas déjà connecté. |
VsixPublisher.exe logout -publisherName "{Publisher Name}"
createPublisher
Attention
Cette commande n'est plus disponible. Vous pouvez créer un éditeur en accédant à Visual Studio Marketplace.
fichier publishManifest
Un fichier publishManifest est utilisé par la commande de publication . Il représente toutes les métadonnées relatives à l’extension que la Place de marché doit connaître. Si l’extension en cours de chargement provient d’une extension VSIX, la propriété « identity » doit uniquement avoir le paramètre « internalName ». Cela est dû au fait que le reste des propriétés « identity » peut être généré à partir du fichier vsixmanifest. Si l’extension est une extension msi/exe ou une extension de lien, l’utilisateur doit fournir les champs requis dans la propriété « identity ». Le reste du manifeste contient des informations spécifiques à la Place de marché (par exemple, des catégories, si Q&A est activé, etc.).
Exemple de fichier publishManifest de l’extension 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.
}
Exemple de fichier MSI/EXE ou 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"
}
Fichiers multimédias
Les fichiers multimédias peuvent être fournis pour incorporer des éléments tels que des images dans le fichier lisez-moi. Par exemple, si une extension a le document Markdown « vue d’ensemble » suivant :
TestExtension
...
This is test extension.
![Test logo](images/testlogo.png "Test logo")
Pour résoudre « images/testlogo.png » dans l’exemple précédent, un utilisateur peut fournir des « assetFiles » dans son manifeste de publication comme ci-dessous :
{
"assetFiles": [
{
"pathOnDisk": "\\path\\to\\logo.png",
"targetPath": "images/logo.png"
}
],
// other required fields
}
Procédure pas à pas de publication
Prérequis
Pour suivre cette procédure pas à pas, vous devez installer le Kit de développement logiciel (SDK) Visual Studio. Pour plus d’informations, consultez Installation du Kit de développement logiciel (SDK) Visual Studio.
Créer une extension Visual Studio
Dans ce cas, nous allons utiliser une extension VSPackage par défaut, mais les mêmes étapes sont valides pour chaque type d’extension.
- Créez un VSPackage en C# nommé « TestPublish » qui a une commande de menu. Pour plus d’informations, consultez Création de votre première extension : Hello World.
Empaqueter votre extension
Mettez à jour l’extension vsixmanifest avec les informations correctes sur le nom du produit, l’auteur et la version.
Générez votre extension en mode Release . À présent, votre extension sera empaquetée en tant que VSIX dans le dossier \bin\Release.
Vous pouvez double-cliquer sur VSIX pour vérifier l’installation.
Tester l’extension
Avant de distribuer l’extension, générez-la et testez-la pour vous assurer qu’elle est installée correctement dans l’instance expérimentale de Visual Studio.
Dans Visual Studio, démarrez le débogage. pour ouvrir une instance expérimentale de Visual Studio.
Dans l’instance expérimentale, accédez au menu Outils, puis cliquez sur Extensions et Mises à jour.... L’extension TestPublish doit apparaître dans le volet central et être activée.
Dans le menu Outils , vérifiez que vous voyez la commande de test.
Publier l’extension sur la Place de marché via la ligne de commande
Vérifiez que vous avez créé la version Release de votre extension et qu’elle est à jour.
Vérifiez que vous avez créé publishmanifest.json et overview.md fichiers.
Ouvrez la ligne de commande et accédez au répertoire ${VSInstallDir}\VSSDK\VisualStudioIntegration\Tools\Bin\.
Pour publier une nouvelle extension, utilisez la commande suivante :
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.}"
Lors de la publication réussie de l’extension, le message de ligne de commande suivant s’affiche :
Uploaded 'MyVsixExtension' to the Marketplace.
Vous pouvez vérifier la nouvelle extension que vous avez publiée en accédant à Visual Studio Marketplace
Installer l’extension à partir de Visual Studio Marketplace
Maintenant que l’extension est publiée, installez-la dans Visual Studio et testez-la là.
Dans Visual Studio, dans le menu Outils, cliquez sur Extensions et Mises à jour....
Cliquez sur Online , puis recherchez TestPublish.
Cliquez sur Télécharger. L’extension sera ensuite planifiée pour l’installation.
Pour terminer l’installation, fermez toutes les instances de Visual Studio.
Supprimer l’extension
Vous pouvez supprimer l’extension de Visual Studio Marketplace et de votre ordinateur.
Pour supprimer l’extension de la Place de marché via la ligne de commande
Si vous souhaitez supprimer une extension, utilisez la commande suivante :
VsixPublisher.exe deleteExtension -publisherName "TestVSIXPublisher" -extensionName "MyVsixExtension"
Lors de la suppression réussie de l’extension, le message de ligne de commande suivant s’affiche :
Removed 'MyVsixExtension' from the Marketplace.
Pour supprimer l’extension de votre ordinateur
Dans Visual Studio, dans le menu Outils, cliquez sur Extensions et Mises à jour.
Sélectionnez « MyVsixExtension », puis cliquez sur Désinstaller. L’extension sera ensuite planifiée pour la désinstallation.
Pour terminer la désinstallation, fermez toutes les instances de Visual Studio.