打包集成并将其发布到市场

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

是否有与 Azure DevOps 或 Team Foundation Server(TFS)集成的工具、服务或产品? 如果是这样,请通过将其发布到 Visual Studio Marketplace 来帮助用户找到它。 市场是个人和团队的一站式商店,用于查找扩展和增强体验的工具。

浏览市场 以查看其他集成和扩展的示例。

注意

如果要查找扩展的打包和发布信息,检查包和发布扩展

发布要求

在发布到市场之前,必须满足以下要求列表。

  • 安装扩展打包工具(TFX)。 从命令提示符运行 npm install -g tfx-cli
  • 确保授予适当的权限以使用任何图像,例如图标、徽标、屏幕截图等。
  • 包括一个全面的 overview.md 文件,用于描述市场中的列表。
  • 包括扩展的图标,该图标的大小至少为 128x128 像素。
  • 引用 Microsoft 产品时,请使用全名代替缩写,例如 Azure DevOps 与 AzDO 或其他任何缩写。
  • 不要在扩展名称中使用品牌名称。

所需条件

  1. 128x128 像素徽标(PNG 或 JPEG 格式)表示集成、自己或公司/组织
  2. 显示集成的最低屏幕截图
  3. 调用操作/入门 URL(用户应从何处开始集成)

步骤

发布到市场是一个迭代过程,从创建定义集成和关键发现特征(如屏幕截图、徽标和概述内容)的清单文件开始。 此信息用于将集成呈现给市场上的用户,例如:

 示例

适用于 Azure DevOps 的 Jenkins

注意:术语 extension在下面引用的文档中使用。 扩展是另一种类型的市场项,从发现的角度来看,作为集成共享许多相似之处。

需要有关在市场中集成方面的帮助? 联系我们。 而且,是的,这个电子邮件地址由真正的人监视。

创建发布商

所有扩展和集成(包括来自 Microsoft 的扩展)都有发布者。 任何人都可以创建发布者并在其下发布扩展。 如果团队正在开发扩展,还可以向其他人授予对发布者的访问权限。

用户拥有发布者,通常是创建发布者的用户。 还可以与其他用户共享发布者。

  1. 登录到 Visual Studio Marketplace 发布门户

  2. 如果还没有现有发布者的成员, 请 + 创建发布者。 在发布者名称字段中输入名称。 ID 字段应根据输入的名称自动设置。

    显示突出显示的按钮“创建发布者”的屏幕截图。

    注意

    记下 ID,因为需要在扩展的清单文件中对其进行设置。

    如果未提示创建发布者,请向下滚动到页面底部,然后选择“相关网站下方的发布扩展”。

    • 为发布者指定标识符,例如: mycompany-myteam 此标识符用作扩展清单文件中属性的值 publisher
    • 指定发布者的显示名称,例如: My Team
  3. 查看市场发布者协议,然后选择“创建”。

    为扩展创建发布者

发布者创建后,将定向管理项,但没有任何项目。

创建包含项目清单和其他资产的文件夹

将集成打包为扩展之前,需要创建一个 home 文件夹来包含此文件夹中的一些必需资产:

  1. 创建一 images 个名为包含的文件夹:
    • 集成徽标(128x128 像素)
    • 屏幕截图(1366x768 像素)
  2. 创建名为 的文件 overview.md
  3. 创建名为 的文件 vss-integration.json
    • 此文件是市场列表的清单文件,它包含许多属性,用于在市场一览中描述扩展。 可以在此处浏览 扩展清单参考

扩展清单

  1. vss-integration.json使用以下 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"
        }
    }
    
  2. 使用以下参考更新 JSON:

这些属性是必需的:

properties 说明 说明
manifestVersion 对应于清单格式版本的数字。 应为 1
ID 扩展的标识符。 此 ID 是一个字符串,在来自同一发布服务器的扩展之间必须是唯一的。 它必须以字母或数字字符开头,并通过“Z”、“a”到“z”、“0”到“9”和“-”(连字符)包含“A”。 示例:sample-extension
version 指定扩展版本的字符串。 应采用格式 major.minor.patch,例如 0.1.21.0.0。 还可以为以下格式添加第四个数字: 0.1.2.3
name 扩展的简短、可读名称。 限制为 200 个字符。 示例:"Fabrikam Agile Board Extension"
publisher 发布者的标识符。 此标识符必须与发布扩展的标识符匹配。 请参阅 “创建和管理发布者”。
类别 表示扩展所属类别的字符串数组。 必须至少提供一个类别,并且没有限制可以包含的类别数。 有效值:Azure Repos、、Azure PipelinesAzure BoardsAzure Test PlansAzure Artifacts

注意:
    - 如果要以编程方式发布扩展,请使用 tfx-cli 的版本 >=0.6.3。
    - 如果使用 Azure DevOps 扩展任务扩展 发布,请确保其版本为 >1.2.8。 由于最近的范围更改,可能需要批准扩展更新。
    - 以前提及的类别在 Visual Studio Marketplace 和 Azure DevOps Server 2019 及更高版本中本机存在。 对于面向早期版本的 TFS 的扩展:
      - 如果 TFS 客户在连接的上下文中通过 Visual Studio Marketplace(而不是本地库)获取扩展,则使用前面所述的类别。
      - 如果要直接(即不是通过 Visual Studio Marketplace)与使用 TFS <=2018 的客户共享扩展,请改用以下类别:代码、计划和跟踪、生成和发布、测试、协作和集成。 如果需要通过 Visual Studio Marketplace 直接与 TFS <= 2018 客户共享,则需要有 2 个扩展包。
目标 集成或扩展支持的产品和服务。 有关详细信息,请参阅 安装目标 一个对象数组,其中每个对象都有一个 id 字段,指示下列值之一:
    - Microsoft.VisualStudio.Services(适用于 Azure DevOps 或 TFS 的扩展)、
    - Microsoft.TeamFoundation.Server(适用于 TFS 的扩展)、(适用于 Azure DevOps 或 TFS 的集成)、Microsoft.VisualStudio.Services.IntegrationMicrosoft.TeamFoundation.Server.Integration
    -
    - (适用于 TFS 的集成)

这些可选属性可帮助用户发现并了解扩展:

properties 说明 说明
说明 描述扩展的几个句子。 限制为 200 个字符。 描述应该是扩展的“电梯间距”-几个行来描述你的扩展在市场中,并让人们想要安装它。 请参阅以下示例
图标 表示扩展的图标字典。 有效密钥: default BMP、GIF、EXIF、JPG、PNG 和 TIFF 类型(128x128 像素)。 将来可能支持其他键,例如 large (512x512 像素)。 每个键的值是扩展中图标文件的路径
tags 用于帮助用户查找扩展的字符串标记数组。 示例: agileproject managementtask timer等等。
截图 无法包含在内容中的图像数组。 在内容特别推荐时,屏幕截图更有价值,应该使用它来帮助为扩展创建高质量的市场详细信息页面。 对于内容未特别推荐的不太重要的图像,请使用屏幕截图。 每个图像应为 1366x768 像素。 path每个项是扩展名中文件的路径。
content 描述用户扩展的内容文件的字典。 每个 扩展都应包括实心内容。 这是你将如何向用户显示扩展可以执行的操作。 使其丰富、易耗,并在必要时包括屏幕截图。 overview.md将文件作为基本内容块包含。 每个文件都假定采用 GitHub 风格 Markdown 格式。 path每个项是扩展名中 Markdown 文件的路径。 有效键: details. 将来可能支持其他密钥。
链路 帮助用户详细了解扩展、获取支持和移动的链接字典。 有效密钥: getstarted - 第一步,如何设置或使用。 learn - 更深入的内容,帮助用户更好地了解扩展或服务。 license - 最终用户许可协议。 privacypolicy - 扩展的隐私策略。 support - 获取扩展的帮助和支持。 每个键的值是一个 uri 具有字段的对象,该字段是链接的绝对 URL
存储库 描述扩展源代码存储库的属性字典 有效密钥: type - 存储库的类型。 示例: gituri - 存储库的绝对 URL。
徽章 来自 已批准的锁屏提醒网站中的外部元数据锁屏提醒(如 TravisCI、Appveyor 等)的链接数组 有效密钥: href - 在选择锁屏提醒时,用户导航到该链接。 uri - 要显示的锁屏提醒图像的绝对 URL。 description - 在悬停时显示的锁屏提醒说明。
品牌 与品牌相关的属性的字典。 有效键: color - 扩展或发布者的主要颜色;可以是十六进制(#ff00ff)、RGB(rgb(100,200,50)或支持的 HTML 颜色名称(蓝色)。 theme- 补充颜色;将色用于深色品牌颜色,或浅色品牌颜色。

详细信息页

  • 1 - 说明
  • 2 - 图标
  • 3 - 类别
  • 4 - 屏幕截图
  • 5 - 内容(详细信息)
  • 6 - 链接
  • 7 - 品牌打造

card

确保“public”属性设置为“false”(或根本不设置),以避免扩展或集成在市场中所有用户过早可见。

打包清单和资产

获取包工具 (tfx-cli)

可以使用 azure DevOps (tfx-cli) npmNode.js的组件)从命令行安装或更新跨平台 CLI。

npm i -g tfx-cli

在 .vsix 文件中打包集成

tfx extension create --manifest-globs vss-extension.json

注意

扩展/集成的版本必须在每次更新时递增。
如果清单中尚未递增扩展/集成,则应传递 --rev-version 命令行开关。 这会递增 扩展的修补程序 版本号,并将新版本保存到清单。

将集成发布到市场

打包扩展后,可以在发布者下将其上传到市场。 publisher扩展清单文件中指定的标识符必须与上传扩展的发布者的标识符匹配。

  1. 在管理门户中,从页面顶部的下拉菜单中选择发布者。

  2. 选择“新建扩展>Azure DevOps”。

    显示“新建扩展”下拉菜单并突出显示了“Azure DevOps”选择的屏幕截图。

  3. 拖放文件或将其选中以查找在上一个打包步骤中创建的 VSIX 文件,然后选择“ 上传”。

    显示为 Azure DevOps 上传新扩展的屏幕截图。

    快速验证后,扩展将显示在已发布的扩展列表中。 别担心,扩展仅对你可见。

    显示已发布扩展列表中的扩展的屏幕截图。

此时,你的扩展对任何帐户不可见,在共享该扩展之前无法安装。

注意

Microsoft 对发布的每个新的和更新的扩展包运行病毒扫描。 在扫描全部清除之前,我们不会在市场中发布扩展供公众使用。 这样我们还可以避免在市场页面上显示不适当的或冒犯性的内容。

共享集成

必须先与该组织共享集成,然后才能将集成安装到 Azure DevOps 或 TFS 中的组织。 共享是开发和测试集成期间的要求,因为它是运行集成的唯一方法。

若要共享集成,请执行以下操作:

  1. 从显示的项列表中选择集成
  2. 选择“ 共享 ”按钮
  3. 指定要使此集成可见的组织的名称。
    • 例如,若要使集成对 dev.azure.com/fabrikam-fiber-inc 组织可见,请指定 fabrikam-fiber-inc

更新项

若要更改已发布的扩展,请更新它。

提示

建议通过删除和重新上传来更新扩展。 我们还建议有两个扩展,例如 publisher.extensionpublisher.extension-devPublisher.extension 在市场中是公开的,客户可以在其 Azure DevOps 组织中安装它。 Publisher.extension-dev 在市场中保持私密,可与你拥有和控制的组织共享。 无需维护扩展的两个源代码副本。 可以维护两个清单文件 - 每个扩展的一个,在打包扩展期间,你可以向 tfx-cli 工具提供相应的清单文件。 有关该工具所需的参数的详细信息,请参阅 TFX 扩展命令

  1. 从显示的项列表中选择一个扩展。
  2. 右键单击并选择“更新publisher.extension-dev例如。
  3. 验证扩展。
  4. 例如, publisher.extension对生产版本进行相同的更新。
  5. 浏览到 .vsix 以获取扩展并上传它。

更新的扩展版本会自动安装到已安装扩展的帐户。 将来安装扩展的新帐户也会收到最新版本。

公开集成(对所有人可见)

有关公开集成的信息,请访问 “公开列表”。