打包和发布扩展

Azure DevOps Services | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018

编写扩展后,下一步是打包扩展。 然后,发布或将其上传到 Visual Studio 市场。 如果用户与其共享,则可以从市场安装扩展。 市场是 Microsoft 提供的专用和公共扩展、集成和其他产品/服务的全局存储库。

注意

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

先决条件

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

  • 确保授予适当的权限以使用任何图像 (图标、徽标、屏幕截图等)
  • 在市场中包括一个彻底 overview.md 的文件来描述你的列表
  • 包含扩展的图标,该图标的大小至少为 128x128 像素
  • 引用 Microsoft 产品时,请使用全名代替缩写,例如 Azure DevOps Services 与 AzDO 或其他任何缩写
  • 不要在扩展名称中使用品牌名称

创建发布者

Visual Studio Marketplace 上的每项(包括扩展和集成)都属于发布者。

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

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

  2. 如果你还不是现有发布者的成员,系统会提示你创建发布者。 如果未提示创建发布者,请向下滚动到页面底部,然后选择“相关网站”下的“发布扩展”。

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

    Create publisher for extension

创建发布者后,将定向到管理没有项目的项目。

打包扩展

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

获取包工具 (tfx-cli)

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

npm i -g tfx-cli

将扩展名打包到 .vsix 文件中

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

注意

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

检查包大小

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

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

发布扩展

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

将扩展上传到市场:

  1. 导航到 Visual Studio Marketplace 发布门户
  2. 找到 “上传新扩展 ”按钮,导航到打包的 .vsix 文件,然后选择 “上传”。
  3. 快速验证后,扩展会显示在扩展列表中: first

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

保护扫描

作为市场用户,当恶意软件从 Visual Studio Marketplace 获取扩展时,预期不会收到恶意软件 (恶意软件) 。 为了确保这一点,我们在发布的每个扩展包上运行病毒扫描。 这将针对每个新扩展和每个扩展更新执行。 在扫描全部清楚之前,我们不会在市场中发布扩展以供公共使用。

状态病毒扫描仅在扩展发布时运行,而不是在扩展执行期间运行。

我们还对市场中的每个扩展执行内容扫描。 这将针对每个新扩展和每个扩展更新执行。 通过此,我们避免在市场页面上显示不适当的或冒犯性内容。

共享扩展

必须先与组织共享扩展,然后才能在 Azure DevOps 或 TFS 中安装扩展。 在开发和测试扩展的过程中,共享是一项要求,因为它是运行扩展的唯一方法。

若要共享扩展,请执行以下操作:

  1. 选择扩展项的省略号以显示菜单

  2. 选择 “共享 ”按钮

    Share Extensions

  3. 指定组织的名称以使此扩展可见

    • 例如,若要使扩展对 dev.azure.com/fabrikam-fiber-inc 组织可见,请指定 fabrikam-fiber-inc

安装扩展

若要安装已共享的扩展,请执行以下操作:

  1. 在组织主页中,选择右上角的“市场”图标,然后选择“管理扩展”:

    Manage Extensions

  2. 在此组织类别的 “共享” 下查找扩展:

    Shared with me

  3. 选择卡片以在市场中打开该项

  4. 从项目的详细信息页中,选择 “安装 ”按钮

  5. 选择你与之共享扩展的组织,并继续完成安装过程。

更新扩展

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

提示

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

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

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

使扩展公开 (对每个人) 可见

有关公开扩展的信息,请访问“公开列出”。

取消发布扩展

如果不想在市场中提供或错误发布免费扩展,可以取消发布/取消列出免费扩展。

下面是可能需要从市场中删除扩展的一些方案:

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

若要取消发布,请在 发布者页面上 选择扩展,然后在菜单中选择 “取消发布 ”。 扩展立即从市场取消发布,新用户无法安装它。 扩展的评级和评论保持不变。

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

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

取消发布或删除扩展要求

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

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

重要说明:如果由于法律或安全问题,必须删除扩展,请联系 市场团队。 我们将查看请求并手动删除扩展。

联系人

向 Visual Studio 市场vsmarketplace@microsoft.com发送有关将项目发布到的问题。