打包和发布扩展

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

开发扩展后,可以打包并将其发布到 Visual Studio 市场。 市场是 Microsoft 提供的专用和公共扩展、集成和其他产品/服务的全局存储库。

注意

有关扩展清单文件中可用的发现属性的信息,帮助用户发现和了解扩展,请参阅 扩展清单参考

先决条件

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

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

创建发布商

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

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

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

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

    Screenshot showing highlighted button, Create publisher.

    注意

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

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

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

    Create publisher for extension

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

打包扩展

若要上传扩展,需要将其打包为与 VSIX 2.0 兼容的 .vsix 文件。 Microsoft 提供跨平台命令行接口(CLI)来打包和发布扩展。

  1. 打开扩展清单文件(vss-extension.json)并将字段的值 publisher 设置为发布者的 ID。 例如:

    {
        ...
        "id": "my-first-extension",
        "publisher": "AnnetteNielsen",
        ...
    }
    
  2. 在命令提示符下,从扩展目录运行 TFX 工具的打包命令。

    npx tfx-cli extension create
    

    显示一条消息,指示扩展已成功打包:

    === Completed operation: create extension ===
    - VSIX: C:\my-first-extension\AnnetteNielsen.my-first-extension-1.0.0.vsix
    - Extension ID: my-first-extension
    - Extension Version: 1.0.0
    - Publisher: AnnetteNielsen
    

注意

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

检查包大小

在打包 vsix 后检查其大小。 如果大于 50 MB,则需要对其进行优化。 为此,请参阅以下注意事项:

  • 重复数据删除公共依赖项(如果有的话)通过在扩展包中声明一次它们。
  • 在运行时或在安装期间提取内容,而不是在包中提供它。 请考虑使用工具安装程序库在运行时拉取工具依赖项。 使用 lib 提供了一个好处,其中该工具按版本缓存,因此对于专用代理,它不会下载每个生成。 我们将其设为库,以便在工具安装程序任务之外使用它。 但是,该任务在断开连接的方案(无 Internet)中不起作用,该方案应位于任务的说明/文档中。
  • 某些用户成功使用 WebPack 来树化其任务中的依赖项。

发布扩展

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

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

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

    Screenshot showing New extension dropdown menu and highlighted Azure DevOps selection.

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

    Screenshot showing Upload of new extension for Azure DevOps.

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

    Screenshot showing extension in the list of published extensions.

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

注意

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

共享扩展

必须先与组织共享扩展,然后才能在 Azure DevOps 中安装该扩展。 若要共享扩展,请执行以下任务:

  1. 在市场管理门户中,从列表中选择扩展,右键单击,然后选择“共享/取消共享”或发布/取消发布”,具体取决于扩展。

    Screenshot of menu selection, Share/Unshare.

  2. 选择“组织”,然后输入组织的名称。 选择 Enter

    Screenshot of Enter button.

  3. 关闭面板。

扩展现在可以安装到此组织中。

安装扩展

若要安装共享扩展,请执行以下步骤。

  1. 在市场中,选择扩展以打开其概述页。

    Screenshot of the Overview page.

    注意

    由于扩展是专用的,因此只有你及其与之共享的组织的任何成员才能看到此页面。

  2. 选择“ 免费 获取”以启动安装过程。 从下拉菜单中选择你与之共享扩展的组织。

    Screenshot showing extension installation dialog.

  3. 选择“安装” 。

祝贺你! 你已将扩展安装到组织中,并已准备好试用。

试用扩展

  1. 在安装向导结束时选择 “继续到组织 ”,转到安装扩展的组织的主页(https://dev.azure.com/{organization})。

  2. 刷新浏览器。

  3. 打开 组织设置,然后选择“ 扩展”。

    Screenshot of Organization settings, Extensions page.

应在“已安装”选项卡上看到新扩展

调试扩展

若要使用 Visual Studio 或浏览器开发人员工具调试扩展,请通过添加 baseUri 属性来更改清单。 此操作可加快开发速度,而无需在每次更改源代码时重新部署扩展。

{
    ...
    "baseUri": "https://localhost:44300",
    ...
}

更改清单时,它会从本地 Web 服务器实例加载扩展。 例如,Visual Studio 中的 II标准版xpress。 更改清单后,仅部署并安装此调试扩展一次。

注意

在 SSL 模式下运行本地 Web 服务器,因为 Azure DevOps 要求从安全源提供网页。 否则,在扩展 IFRAME 加载期间,浏览器控制台中会出现错误。

更新扩展

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

提示

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

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

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

公开扩展

为市场开发扩展或集成时,请将其保持私密。 若要公开提供扩展,请将 公共标志 设置为 true 清单中。

认证

若要在市场中列出公共列表,集成或扩展必须满足以下资格:

  • 适用于或扩展 Azure DevOps。
  • 你或你的公司拥有、开发和许可分发和播发集成或扩展。
  • 扩展或集成是主动维护的。

Microsoft 可能还会请求演示并查看计划为市场条目提供的内容。

排名靠前的发布者

Top Publisher 计划仅适用于具有 Azure DevOps 扩展或集成的发布者。 它不适用于 Visual Studio IDE 和 Visual Studio Code 扩展发布者。

Screenshot of the Top Publisher badge.

顶级发布者计划通过模范策略、质量、可靠性和支持向客户和市场承诺的发布者。 成为顶级发布者后,所有公开产品都会显示 Top Publisher 徽章。

排名靠前的发布者要求

市场中排名靠前的发布者计划旨在帮助评估或获取 Azure DevOps 扩展和自信集成。 顶级发布者徽章意味着发布者通过模范策略、质量、可靠性和支持向客户和市场展示承诺。 它适用于具有一个或多个全局 Azure DevOps 扩展或集成的发布者,不适用于 Visual Studio IDE 和 Visual Studio Code 扩展发布者。

市场在仔细查看发布者后,使用以下参数将锁屏提醒分配给发布者:

  • 隐私策略
  • 许可策略
  • 支持策略
  • 文档
  • Q & A 响应能力
  • &其产品/服务的分级评审
  • 主动采用及其产品/服务的安装计数

从顶级发布者获取扩展时,可以期待及时的支持和良好的整体体验。 查看来自顶级发布者的产品/服务。

有关将策略添加到产品/服务的详细信息,请参阅 扩展清单

  1. 更新发布者个人资料。

    通过发布者个人资料,可以在一个位置展示所有产品/服务以及关键发布者相关信息。 若要提供配置文件中显示的信息,请执行以下步骤:

    a. 使用 https://marketplace.visualstudio.com/manage/publishers 在 Visual Studio Marketplace 中发布和管理产品/服务的帐户登录。

    b. 选择发布者,然后在“详细信息”选项卡中完成“关于你”部分。Screenshot of the section about you for Microsoft publishers. c. 保存更改,然后选择“查看配置文件以查看其对使用者的显示方式。 可以使用此配置文件页来传出产品/服务(s)。

注意

通过此计划,它是正在认证的发布者。 这不包括其扩展和集成的软件或安全性。 在评估发布者的产品/服务时,建议了解 安全信息

如果你从顶级发布者获得了扩展,并且对你的体验不满意,请考虑先与发布者互动。 之后,如果你仍然不满意, 请联系市场团队

申请成为顶级发布者

  1. 使用 https://marketplace.visualstudio.com/manage/publishers 在市场中发布和管理产品/服务的帐户登录
  2. 选择发布服务器并导航到其 顶部发布服务器 选项卡。注意:需要有一个或多个全局 Azure DevOps(服务器/服务)扩展或集成才能显示选项卡。
  3. 如果满足之前列出的部分要求,并且是发布者的所有者,则会看到一个选项来申请该计划。 在应用程序中,会向市场团队发送一封电子邮件,以审查你的案例。 他们在接下来的 10 个工作日内回答后续步骤,澄清问题或授予徽章。

在授予徽章之前,团队可能会查看其他参数,例如主动获取产品/服务、安装/开始计数和评分 & 评审。 Microsoft 随时保留授予、拒绝或撤销 Top Publisher 徽章的权利。

发布者是顶级发布者后,其所有未来的更新和产品/服务必须满足之前列出的要求。

响应市场扩展评审

你可以响应客户在 Visual Studio Marketplace 中为扩展留下的评论。 如果具有以下权限之一,请在评审旁边查找并选择“回复”:所有者、创建者或参与者。

只能留下一个响应。 避免将评审用作支持论坛。 如果需要更多详细信息,请提供供审阅者联系的支持别名。 然后,可以在外部解决其问题,并使用解决方法更新回复。

发布者响应指南

使 Visual Studio Marketplace 保持开放、邀请、尊重和有用的位置,供客户查找、试用、安装和查看扩展。 沟通在保持健康社区方面发挥了重要作用。 为了帮助创建此环境,下面是发布者响应客户评论的指南。 深入思考客户交互,并反思市场正在尝试创建的客户体验精神。

  • 评论保留给客户批注。 仅使用 回复 回复回复审阅。
  • 评论用于共享客户意见,因此 所有意见都有效。 客户有权接受自己的意见,因此,在没有辩论、批评或争论的情况下,尊重评论作为反馈。
  • 确保响应增加价值,并与客户的评论相关。
  • 专注于精确解决问题或问题。 如果需要更多详细信息,请让客户通过电子邮件联系你,而不是在评论中讨论。 解决问题时,请使用解决方法更新回复。 可以编辑回复,就像客户可以编辑他们的评论一样。
  • 如果你遇到任何不适当的评论(如垃圾邮件、滥用或冒犯性内容)的任何扩展,请将其标记为我们的评论。

请求取消评审

作为发布者,如果报告的问题是由于市场或基础平台,则可以呼吁取消评审。 如果问题有效,市场管理员将取消分级。 可以从 扩展中心页面上的“分级和审阅”部分提出上诉

取消发布扩展

如果不再需要在市场中提供免费扩展,可以取消发布免费扩展。

以下方案涵盖何时可能想要从市场中删除扩展:

  • 你开发了另一个扩展,不再想要提供当前扩展。
  • 你的扩展有问题,因此你想要从市场中删除扩展,直到解决问题。
  • 错误地将扩展发布为公共扩展。

必须满足某些条件才能取消发布或删除扩展:

操作 要求
取消发布 免费扩展 可能未发布。
删除 扩展必须安装 零(0) 才能删除。

重要

如果因法律或安全问题而必须删除扩展,请联系 市场团队。 我们查看请求并手动删除扩展。

  1. 选择发布者页面上的扩展,然后在菜单中选择“取消发布”。

    你的扩展会立即从市场取消发布,并且新用户无法安装它。 扩展的评级和评论保持不变。

若要在市场中再次提供扩展,请选择菜单上的“ 发布 ”。

如果你的扩展安装为零(0),则还可以选择从市场完全删除扩展。 为此,请选择菜单上的“ 删除 ”。 此操作不能撤消。