Demonstra Passo a passo: Publicando uma extensão do Visual Studio via linha de comando
Este passo a passo mostra como publicar uma extensão do Visual Studio no Visual Studio Marketplace usando a linha de comando. Quando você adiciona sua extensão ao Marketplace, os desenvolvedores podem usar a caixa de diálogo Extensões e atualizações para procurar extensões novas e atualizadas.
VsixPublisher.exe é a ferramenta de linha de comando para publicar extensões do Visual Studio no Marketplace. Ele pode ser acessado em ${VSInstallDir}\VSSDK\VisualStudioIntegration\Tools\Bin\VsixPublisher.exe. Os comandos disponíveis nesta ferramenta são: publish, deletePublisher, deleteExtension, login, logout.
Comandos
Publicar…
Publica uma extensão para o Marketplace. A extensão pode ser um vsix, um arquivo exe/msi ou um link. Se a extensão já existir com a mesma versão, ela substituirá a extensão. Se a extensão ainda não existir, ela criará uma nova extensão.
Opções de comando | Descrição |
---|---|
Carga útil (obrigatório) | Um caminho para a carga útil a ser publicada ou um link para usar como a "URL de mais informações". |
publishManifest (obrigatório) | Caminho para o arquivo de manifesto de publicação a ser usado. |
ignoreAvisos | Lista de avisos a serem ignorados ao publicar uma extensão. Esses avisos são mostrados como mensagens de linha de comando ao publicar uma extensão. (por exemplo, "VSIXValidatorWarning01, VSIXValidatorWarning02") |
personalAccessToken | Token de Acesso Pessoal (PAT) usado para autenticar o editor. Se não for fornecido, o PAT é adquirido dos usuários conectados. |
VsixPublisher.exe publish -payload "{path to vsix}" -publishManifest "{path to vs-publish.json}" -ignoreWarnings "VSIXValidatorWarning01,VSIXValidatorWarning02"
excluirPublisher
Exclui um editor no Marketplace.
Opções de comando | Descrição |
---|---|
publisherName (obrigatório) | O nome do editor (por exemplo, o identificador). |
personalAccessToken (obrigatório) | Token de acesso pessoal usado para autenticar o editor. |
VsixPublisher.exe deletePublisher -publisherName "{Publisher Name}" -personalAccessToken "{Personal Access Token}"
excluirExtensão
Exclui uma extensão do Marketplace.
Opções de comando | Descrição |
---|---|
extensionName (obrigatório) | O nome da extensão a ser excluída. |
publisherName (obrigatório) | O nome do editor (por exemplo, o identificador). |
personalAccessToken | Token de acesso pessoal usado para autenticar o editor. Se não for fornecido, o pat é adquirido dos usuários conectados. |
VsixPublisher.exe deleteExtension -extensionName "{Extension Name}" -publisherName "{Publisher Name}"
login
Registra um editor na máquina.
Opções de comando | Descrição |
---|---|
personalAccessToken (obrigatório | Token de acesso pessoal usado para autenticar o editor. |
publisherName (obrigatório) | O nome do editor (por exemplo, o identificador). |
substituir | Especifica que qualquer editor existente deve ser substituído pelo novo token de acesso pessoal. |
VsixPublisher.exe login -personalAccessToken "{Personal Access Token}" -publisherName "{Publisher Name}"
logout
Efetua logout de um editor da máquina.
Opções de comando | Descrição |
---|---|
publisherName (obrigatório) | O nome do editor (por exemplo, o identificador). |
ignoreMissingPublisher | Especifica que a ferramenta não deve apresentar erro se o editor especificado ainda não estiver conectado. |
VsixPublisher.exe logout -publisherName "{Publisher Name}"
createPublisher
Cuidado
Este comando não está mais disponível. Você pode criar um novo editor navegando até o Visual Studio Marketplace.
arquivo publishManifest
Um arquivo publishManifest é usado pelo comando publicar . Ele representa todos os metadados sobre a extensão que o Marketplace precisa saber. Se a extensão que está sendo carregada for de uma extensão VSIX, a propriedade "identity" deverá ter apenas o "internalName" definido. Isso ocorre porque o restante das propriedades "identity" pode ser gerado a partir do arquivo vsixmanifest. Se a extensão for um msi/exe ou uma extensão de link, o usuário deverá fornecer os campos obrigatórios na propriedade "identity". O restante do manifesto contém informações específicas do Marketplace (por exemplo, categorias, se as Perguntas e Respostas estão habilitadas, etc.).
Exemplo de arquivo publishManifest da extensão 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.
}
Exemplo de arquivo 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"
}
Arquivos de ativos
Os arquivos de ativos podem ser fornecidos para incorporar coisas como imagens no arquivo Leiame. Por exemplo, se uma extensão tiver o seguinte documento de Markdown de "visão geral":
TestExtension
...
This is test extension.
![Test logo](images/testlogo.png "Test logo")
Para resolver "images/testlogo.png" no exemplo anterior, um usuário pode fornecer "assetFiles" em seu manifesto de publicação como abaixo:
{
"assetFiles": [
{
"pathOnDisk": "\\path\\to\\logo.png",
"targetPath": "images/logo.png"
}
],
// other required fields
}
Passo a passo da publicação
Pré-requisitos
Para seguir este passo a passo, você deve instalar o SDK do Visual Studio. Para obter mais informações, consulte Instalando o SDK do Visual Studio.
Criar uma extensão do Visual Studio
Nesse caso, usaremos uma extensão VSPackage padrão, mas as mesmas etapas são válidas para cada tipo de extensão.
- Crie um VSPackage em C# chamado "TestPublish" que tenha um comando de menu. Para obter mais informações, consulte Criando sua primeira extensão: Hello World.
Empacotar sua extensão
Atualize a extensão vsixmanifest com as informações corretas sobre o nome do produto, autor e versão.
Crie sua extensão no modo Release . Agora sua extensão será empacotada como um VSIX na pasta \bin\Release.
Você pode clicar duas vezes no VSIX para verificar a instalação.
Testar a extensão
Antes de distribuir a extensão, compile-a e teste-a para verificar se ela está instalada corretamente na instância experimental do Visual Studio.
No Visual Studio, inicie a depuração. para abrir uma instância experimental do Visual Studio.
Na instância experimental, vá para o menu Ferramentas e clique em Extensões e Atualizações.... A extensão TestPublish deve aparecer no painel central e ser habilitada.
No menu Ferramentas, certifique-se de ver o comando test.
Publicar a extensão no Marketplace via linha de comando
Verifique se você criou a versão Release da sua extensão e se ela está atualizada.
Verifique se você criou os arquivos publishmanifest.json e overview.md.
Abra a linha de comando e navegue até o diretório ${VSInstallDir}\VSSDK\VisualStudioIntegration\Tools\Bin\.
Para publicar uma nova extensão, use o seguinte comando:
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.}"
Na publicação bem-sucedida da extensão, você verá a seguinte mensagem de linha de comando:
Uploaded 'MyVsixExtension' to the Marketplace.
Você pode verificar a nova extensão publicada navegando até o Visual Studio Marketplace
Instalar a extensão do Visual Studio Marketplace
Agora que a extensão foi publicada, instale-a no Visual Studio e teste-a lá.
No Visual Studio, no menu Ferramentas , clique em Extensões e Atualizações....
Clique em Online e, em seguida, procure TestPublish.
Clique em Download. A extensão será então agendada para instalação.
Para concluir a instalação, feche todas as instâncias do Visual Studio.
Remover a extensão
Você pode remover a extensão do Visual Studio Marketplace e do seu computador.
Para remover a extensão do Marketplace por meio da linha de comando
Se você deseja remover uma extensão, use o seguinte comando:
VsixPublisher.exe deleteExtension -publisherName "TestVSIXPublisher" -extensionName "MyVsixExtension"
Na exclusão bem-sucedida da extensão, você verá a seguinte mensagem de linha de comando:
Removed 'MyVsixExtension' from the Marketplace.
Para remover a extensão do computador
No Visual Studio, no menu Ferramentas , clique em Extensões e Atualizações.
Selecione "MyVsixExtension" e, em seguida, clique em Desinstalar. A extensão será então agendada para desinstalação.
Para concluir a desinstalação, feche todas as instâncias do Visual Studio.