Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019
En este artículo se explica cómo publicar la herramienta, el servicio o el producto que se integra con Azure DevOps en Visual Studio Marketplace. La publicación en Marketplace ayuda a los usuarios a detectar soluciones que amplían y mejoran su experiencia de Azure DevOps. Marketplace actúa como centro central para usuarios y equipos para buscar integraciones y extensiones.
Examine Marketplace para ver ejemplos de otras integraciones y extensiones.
Nota:
Para obtener información de empaquetado y publicación para extensiones, vea Package & Publish Extensions.
Prerrequisitos
Se debe cumplir la siguiente lista de requisitos antes de publicar en Marketplace.
Categoría | Requisitos |
---|---|
Herramienta de empaquetado | Instale la herramienta de empaquetado de extensiones (TFX). Ejecute npm install -g tfx-cli desde una ventana de comandos. |
Permisos de imagen | Asegúrese de tener los permisos adecuados para usar cualquier imagen, como iconos, logotipos, capturas de pantalla, etc. |
Introducción a Marketplace | Incluya un archivo completo overview.md para describir su anuncio en el Marketplace. |
Icono de extensión | Incluya un icono para la extensión que represente su integración, empresa u organización, al menos 128 x 128 píxeles de tamaño (PNG o JPEG). |
Nombres de producto de Microsoft | Use nombres completos para productos de Microsoft (por ejemplo, Azure DevOps en lugar de AzDO u otras abreviaturas). |
Nombres de marca | No use nombres de marca en el nombre de la extensión. |
Recopilación de recursos necesarios
- Al menos una captura de pantalla de la integración.
- Dirección URL de llamada a acción o introducción para los usuarios.
Nota:
- El término
extension
se usa en la documentación a la que se hace referencia. Las extensiones son otro tipo de elemento de Marketplace y comparten muchas similitudes con las integraciones. - ¿Necesita ayuda para gestionar su integración en el Marketplace? Contáctenos.
Creación de una cuenta de publicador
Todas las extensiones o integraciones, incluidas las de Microsoft, deben tener un publicador. Cualquier persona puede crear un publicador y publicar extensiones en él. También puede compartir el acceso del publicador con otros usuarios, como el equipo de desarrollo.
Inicie sesión en el Portal de publicación de Visual Studio Marketplace.
Si no forma parte de un publicador existente, seleccione + Crear un publicador.
Escriba un nombre de editor; el campo ID se rellena automáticamente en función de la entrada.Nota:
- Asegúrese de que el nombre del editor tenga un máximo de 16 caracteres para caracteres multibyte.
- Guarde el identificador del publicador: lo necesita en el archivo de manifiesto de la extensión.
Si no se le pide que cree un publicador, desplácese hasta Publicar extensiones en Sitios relacionados.
- Establezca un identificador de publicador único, como
mycompany-myteam
. Use este valor para el atributopublisher
en el manifest. - Establezca un nombre para mostrar, como
My Team
.
Revise el Contrato de publicador de Marketplace y, a continuación, seleccione Crear.
Después de crear el publicador, puede administrar elementos, aunque no aparecen elementos hasta que publique.
Organiza tu manifiesto y tus recursos
Para organizar el manifiesto y los recursos, siga estos pasos:
- Cree una
home
carpeta para almacenar los recursos necesarios. - Cree una
images
carpeta para:- El logotipo de integración (128 x 128 píxeles)
- Capturas de pantalla (1366x768 píxeles)
- Cree un
overview.md
archivo para describir la integración. Para obtener más información, consulte GitHub Flavored Markdown. - Cree un archivo
vss-integration.json
, que es el archivo de manifiesto de su anuncio de Marketplace. Para obtener más información, consulte la referencia del manifiesto de extensión.
Completar el manifiesto de extensión
La publicación en Marketplace comienza con la creación de un archivo de manifiesto que define la integración y sus detalles clave de detección (capturas de pantalla, logotipos, contenido de información general). Esta información se usa para presentar la integración a los usuarios en Marketplace.
Rellene el
vss-integration.json
archivo con el siguiente json:{ "manifestVersion": 1, "id": "myservice", "version": "1.0.0", "name": "My Service", "publisher": "mycompany", "description": "Awesome tools to help you and your team do great things everyday.", "targets": [ { "id": "Microsoft.VisualStudio.Services.Integration" } ], "icons": { "default": "images/service-logo.png" }, "categories": [ "Plan and track" ], "tags": [ "working", "people person", "search" ], "screenshots": [ { "path": "images/screen1.png" }, { "path": "images/screen2.png" } ], "content": { "details": { "path": "overview.md" }, "license": { "path": "fabrikam-license-terms.md" } }, "links": { "getstarted": { "uri": "https://www.mycompany.com/help/getstarted" }, "learn": { "uri": "https://www.mycompany.com/features" }, "support": { "uri": "https://www.mycompany.com/support" } }, "branding": { "color": "rgb(34, 34, 34)", "theme": "dark" } }
Actualice el json mediante las siguientes referencias:
Se requieren las siguientes propiedades:
Propiedad | Descripción | Notas |
---|---|---|
manifestVersion | Número correspondiente a la versión del formato de manifiesto. | debe ser 1 . |
IDENTIFICACIÓN | Identificador de la extensión. | Th ID es una cadena que debe ser única entre las extensiones del mismo publicador. Debe comenzar con un carácter alfabético o numérico y contener "A" a "Z", "a" a "z", "0" a "9" y "-" (guion). Ejemplo: sample-extension . |
Versión | Cadena que especifica la versión de una extensión. | Debe tener el formato major.minor.patch , por ejemplo 0.1.2 o 1.0.0 . También puede agregar un cuarto número para el formato siguiente: 0.1.2.3 |
nombre | Nombre corto y fácil de leer de la extensión. Limitado a 200 caracteres. | Ejemplo: "Fabrikam Agile Board Extension" . |
editor | Identificador del publicador. | Este identificador debe coincidir con el identificador en el que se publica la extensión. Consulte Creación y administración de un publicador. |
Categorías | Matriz de cadenas que representan las categorías a las que pertenece la extensión. Se debe proporcionar al menos una categoría y no hay ningún límite para el número de categorías que puede incluir. | Valores válidos: Azure Repos , Azure Boards , Azure Pipelines , Azure Test Plans y Azure Artifacts .Notas:
- Si usa la extensión Azure DevOps Extension Tasks para publicar, asegúrese de que su versión es >= 1.2.8. Es posible que tenga que aprobar la actualización de la extensión debido a cambios recientes en el ámbito. : las categorías mencionadas anteriormente están presentes de forma nativa en Visual Studio Marketplace y Azure DevOps Server 2019 & anteriores. |
Objetivos | Los productos y servicios compatibles con su integración o extensión. Para obtener más información, consulte Destinos de instalación. | Matriz de objetos, donde cada objeto tiene un id campo que indica uno de los siguientes:
Microsoft.VisualStudio.Services (extensiones que funcionan con Azure DevOps),- Microsoft.TeamFoundation.Server (extensión que funciona con Azure DevOps Server),- Microsoft.VisualStudio.Services.Integration , - Microsoft.TeamFoundation.Server.Integration (integraciones que funcionan con Azure DevOps Server) |
Las siguientes propiedades opcionales ayudan a los usuarios a detectar y obtener información sobre la extensión:
Propiedad | Descripción | Notas |
---|---|---|
descripción | Algunas oraciones que describen las extensiones. Limitado a 200 caracteres. | La descripción debe ser el "discurso de ascensor" de la extensión: un par de líneas para describir la extensión en el Marketplace y lograr que las personas quieran instalarla. Vea el ejemplo siguiente |
Iconos | Diccionario de iconos que representan la extensión. | Claves válidas: default (128 x 128 píxeles) de tipo BMP, GIF, EXIF, JPG, PNG y TIFF). En el futuro se pueden admitir otras claves como large (512 x 512 píxeles). El valor de cada clave es la ruta de acceso al archivo de icono de la extensión. |
Etiquetas | Arreglo de etiquetas de texto para ayudar a los usuarios a encontrar tu extensión. | Ejemplos: agile , project management , task timer , etc. |
capturas de pantalla | Matriz de imágenes que no se pudieron incluir en el contenido. | Las capturas de pantalla son más valiosas cuando se incluyen en el contenido y deben usarse allí para ayudar a crear una página de detalles de mercado de calidad para la extensión. Use capturas de pantalla para imágenes menos importantes que no aparezcan en el contenido. Cada imagen debe ser de 1366 x 768 píxeles. El path de cada elemento es la ruta de acceso al archivo en la extensión. |
contenido | Diccionario de archivos de contenido que describen la extensión a los usuarios. |
Cada extensión debe incluir contenido sólido. Así es como mostrará a los usuarios lo que puede hacer la extensión. Haga que sea rico, consumible e incluya capturas de pantalla cuando sea necesario. Incluya un overview.md archivo como elemento de contenido base. Se supone que cada archivo está en formato Markdown con sabor a GitHub . El path de cada elemento es la ruta de acceso al archivo Markdown de la extensión. Claves válidas: details . Es posible que se admitan otras claves en el futuro. |
vínculos | Diccionario de vínculos que ayudan a los usuarios a obtener más información sobre la extensión, obtener soporte técnico y mover. | Claves válidas: getstarted - Son los primeros pasos, cómo configurar o usar.
learn : contenido más profundo para ayudar a los usuarios a comprender mejor su extensión o servicio.
license - Contrato de licencia de usuario final.
privacypolicy - directiva de privacidad para una extensión.
support - obtener ayuda y soporte técnico para una extensión. El valor de cada clave es un objeto con un uri campo, que es la dirección URL absoluta del vínculo. |
repositorio | Diccionario de propiedades que describen el repositorio de código fuente de la extensión | Claves válidas: type tipo de repositorio. Ejemplo: git.
uri - Dirección URL absoluta del repositorio. |
Insignias | Matriz de vínculos a distintivos de metadatos externos, como TravisCI, Appveyor, etc., desde los sitios de distintivos aprobados | Claves válidas: href - Enlace al que el usuario navega al seleccionar el distintivo.
uri : la dirección URL absoluta de la imagen de distintivo que se va a mostrar.
description - Descripción del distintivo, que se mostrará al pasar el ratón por encima. |
branding | Diccionario de propiedades relacionadas con la marca. | Claves válidas: : color color principal de la extensión o publicador; puede ser un hexadecimal (#ff00ff), RGB (rgb(100,200,50)) o nombres de color HTML admitidos (azul).
theme - complementa el color; usa oscuro para colores oscuros de personalización de marca, o claro para colores más claros de personalización de marca. |
Entender la página de detalles
- 1 - descripción
- 2 - Icono
- 3 - Categorías
- 4- Capturas de pantalla
- 5 - contenido (detalles)
- 6 - enlaces
- 7 - Marca
Advertencia
Establezca el atributo public
en false
o omítalo para evitar que su integración sea visible para todos los usuarios de Marketplace antes de que esté listo.
Empaquetar el manifiesto y los recursos
Instalación de la herramienta de paquete (tfx-cli)
Instale o actualice la CLI multiplataforma para Azure DevOps (tfx-cli) mediante npm
:
npm i -g tfx-cli
Empaquetar la integración en un archivo .vsix
tfx extension create --manifest-globs vss-extension.json
Nota:
Incremente la versión de la extensión o la integración con cada actualización.
Si no ha actualizado la versión en el manifiesto, use el --rev-version
modificador de línea de comandos. Este modificador incrementa automáticamente el número de versión de parche y guarda la nueva versión en tu manifiesto.
Publicación de la integración en Marketplace
Una vez empaquetada la extensión, puede subirla al Marketplace bajo un editor. El publisher
identificador especificado en el archivo de manifiesto de la extensión debe coincidir con el identificador del publicador en el que se carga la extensión.
En el portal de administración, seleccione el publicador en el menú desplegable de la parte superior de la página.
Seleccione Nueva extensión>de Azure DevOps.
Arrastre y coloque el archivo o selecciónelo para buscar el archivo VSIX, que creó en el paso de empaquetado anterior y, a continuación, elija Cargar.
Después de la validación rápida, la extensión aparece en la lista de extensiones publicadas. No se preocupe, la extensión solo es visible para usted.
En este momento, la extensión no es visible para ninguna cuenta. Para que sea visible para otros usuarios, debe compartir la extensión.
Nota:
Microsoft ejecuta un examen de virus en cada paquete de extensión nuevo y actualizado publicado. Hasta que el análisis esté todo claro, no publicamos la extensión en el Marketplace para uso público. De este modo, también evitamos exponer contenido inapropiado o ofensivo en las páginas de Marketplace.
Comparte tu integración
Antes de instalar una integración en una organización de Azure DevOps, compártala con esa organización. El uso compartido es necesario para el desarrollo y las pruebas, ya que es la única manera de ejecutar una integración durante estas fases.
Para compartir una integración, siga estos pasos:
- Selección de una integración en la lista de elementos mostrados
- Seleccione el botón Compartir.
- Especifique el nombre de la organización para que esta integración sea visible. Por ejemplo, para que una integración sea visible para la organización de dev.azure.com/fabrikam-fiber-inc , especifique
fabrikam-fiber-inc
.
Actualización de un elemento
Para actualizar una extensión que ya ha publicado, siga estos pasos:
Sugerencia
Actualice la extensión en lugar de quitarla y volver a cargarla. Se recomienda mantener dos extensiones: publisher.extension
, pública en Marketplace para clientes y publisher.extension-dev
, privada, compartida solo con su organización para desarrollo y pruebas.
No necesita dos copias del código fuente, solo tiene que mantener archivos de manifiesto independientes para cada extensión. Al empaquetar, proporcione el archivo de manifiesto adecuado a la herramienta tfx-cli. Para obtener más información, consulte Comandos de extensión de TFX.
- Seleccione la extensión en la lista de elementos mostrados.
- Haga clic con el botón derecho y seleccione Actualizar para la versión de desarrollo, como
publisher.extension-dev
. - Valide la extensión.
- Aplique las mismas actualizaciones a la versión de producción, como
publisher.extension
. - Navegue hacia el archivo .vsix de su extensión y cárguelo.
Azure DevOps instala automáticamente la versión actualizada para todas las cuentas que ya tienen la extensión. Las nuevas instalaciones también reciben la versión más reciente.
Hacer que la integración sea pública
Para obtener información sobre cómo hacer que la integración sea visible para todos los usuarios, consulte Hacer que la descripción sea pública.