Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
本文介绍如何在 Visual Studio Marketplace 上发布与 Azure DevOps 集成的工具、服务或产品。 在市场中发布可帮助用户发现扩展和增强其 Azure DevOps 体验的解决方案。 市场充当个人和团队查找集成和扩展的中心中心。
浏览市场,以了解其他集成和扩展的示例。
注释
有关扩展的打包和发布信息,请参阅 包和发布扩展。
先决条件
在发布到市场之前,必须满足以下要求列表。
类别 | 要求 |
---|---|
打包工具 | 安装扩展打包工具(TFX)。 从命令提示符运行 npm install -g tfx-cli 。 |
图像权限 | 确保你有权使用任何图像,如图标、徽标、屏幕截图等。 |
市场概述 | 包括一个全面的 overview.md 文件,用于描述您的市场清单。 |
扩展图标 | 包括表示集成、公司或组织的扩展的图标,大小至少为 128x128 像素(PNG 或 JPEG)。 |
Microsoft产品名称 | 对Microsoft产品使用全名(例如,Azure DevOps 而不是 AzDO 或其他缩写)。 |
品牌名称 | 请勿在扩展名称中使用品牌名称。 |
收集所需的资产
- 请至少提供一个集成的屏幕截图。
- 行动号召或入门 URL 用于用户。
注释
-
extension
术语在引用的文档中使用。 扩展是另一种类型的市场项,并与集成共享许多相似之处。 - 需要有关在市场中集成方面的帮助? 联系我们。
创建发布者帐户
每个扩展或集成(包括来自Microsoft的扩展或集成)都必须具有发布者。 任何人都可以创建发布者并在其下发布扩展。 还可以与其他用户(例如开发团队)共享发布者访问权限。
如果你不是现有发布者的一部分,请选择“ + 创建发布者”。
输入发布者名称;根据条目自动填充 ID 字段。注释
- 确保发布者名称在多字节字符的 16 个字符内。
- 保存发布者 ID - 需要在扩展的清单文件中使用它。
如果未提示创建发布者,请滚动到“相关网站”下的“发布扩展”。
- 设置唯一的发布者标识符,例如
mycompany-myteam
。 请在清单中的publisher
属性中使用此值。 - 设置显示名称,例如
My Team
。
查看 市场发布者协议,然后选择“ 创建”。
创建发布者后,可以管理项目,尽管发布前不会显示任何项目。
组织您的货运清单和资产
若要组织清单和资产,请执行以下步骤:
- 创建一个用于存储所需资产的
home
文件夹。 - 创建一个
images
文件夹:- 集成徽标(128x128 像素)
- 屏幕截图(1366x768 像素)
- 创建一个
overview.md
文件来描述集成。 有关详细信息,请参阅 GitHub Flavored Markdown。 - 创建一个
vss-integration.json
文件,该文件是市场列表的清单文件。 有关详细信息,请参阅 扩展清单参考。
完成扩展清单
发布到 Marketplace 的第一步是创建一个清单文件,该文件定义您的集成及其关键发现要素:屏幕截图、徽标、概述内容。 此信息用于将集成呈现给市场上的用户。
使用以下 JSON 填充您的
vss-integration.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" } }
使用以下引用更新 JSON:
资产 | DESCRIPTION | 注释 |
---|---|---|
manifestVersion | 对应于清单格式版本的数字。 | 应为 1 。 |
ID | 扩展的标识符。 | 此 ID 是一个字符串,在来自同一发布服务器的扩展之间必须是唯一的。 它必须以字母或数字字符开头,并且只能包含“A”到“Z”、“a”到“z”、数字“0”到“9”和“-”(连字符)。 示例:sample-extension 。 |
版本 | 指定扩展版本的字符串。 | 应采用格式 major.minor.patch ,例如 0.1.2 或 1.0.0 。 还可以为以下格式添加第四个数字: 0.1.2.3 |
名字 | 扩展的简短、用户可读的名称。 限制为 200 个字符。 | 示例:"Fabrikam Agile Board Extension" 。 |
发行人 | 发布者的标识符。 | 此标识符必须与发布扩展的标识符匹配。 请参阅 “创建和管理发布者”。 |
类别 | 表示扩展所属类别的字符串数组。 必须至少提供一个类别,并且没有限制可以包含的类别数。 | 有效值:Azure Repos 、、Azure Boards Azure Pipelines 、Azure Test Plans 和Azure Artifacts 。注释:
- 如果使用 Azure DevOps 扩展任务扩展 发布,请确保其版本为 >1.2.8。 由于最近的范围更改,可能需要批准扩展更新。 - 前面提到的类别原生存在于 Visual Studio Marketplace 和 Azure DevOps Server 2019 及更高版本中。 |
目标 | 您的集成或扩展支持的产品和服务。 有关详细信息,请参阅 安装目标。 | 一个对象数组,其中每个对象都有一个 id 字段,指示下列值之一:
Microsoft.VisualStudio.Services (适用于 Azure DevOps 的扩展)、- Microsoft.TeamFoundation.Server (适用于 Azure DevOps Server 的扩展)、- Microsoft.VisualStudio.Services.Integration - Microsoft.TeamFoundation.Server.Integration (适用于 Azure DevOps Server 的集成) |
以下可选属性可帮助用户发现和了解扩展:
资产 | DESCRIPTION | 注释 |
---|---|---|
说明 | 描述扩展功能的几句话。 限制为 200 个字符。 | 描述应该是扩展的“电梯演讲”— 用几行文字描述市场中的扩展,让用户愿意进行安装。 请参阅以下示例 |
图标 | 表示扩展的图标字典。 | 有效密钥: default BMP、GIF、EXIF、JPG、PNG 和 TIFF 类型(128x128 像素)。 将来可能支持其他键,例如 large (512x512 像素)。 每个键的值是扩展中图标文件的路径 |
标签 | 用于帮助用户查找扩展的字符串标记数组。 | 示例: agile 、 project management 、 task timer 等等。 |
屏幕截图 | 在 内容中使用屏幕截图时,它们的价值更高,应该用以帮助为扩展创建高质量的市场详情页面。 对于不太重要且未在内容中突出显示的图像,请使用屏幕截图。 每个图像应为 1366x768 像素。 每个项目的 path 是扩展中文件的路径。 |
|
内容 | 向用户描述扩展的内容文件字典。 |
每个 扩展都应包含优质内容。 这是你用来向用户展示扩展功能的方法。 使其内容丰富、易于理解,并在必要时包含屏幕截图。 将overview.md 文件作为基本内容纳入。 每个文件都假设采用 GitHub 风格的 Markdown 格式。 每个项目的path 是扩展中 Markdown 文件的路径。 有效键: details . 将来可能支持其他密钥。 |
链接 | 帮助用户详细了解扩展、获取支持和移动的链接字典。 | 有效密钥: getstarted - 第一步,如何设置或使用。
learn - 更深入的内容,帮助用户更好地了解扩展或服务。
license - 最终用户许可协议。
privacypolicy - 扩展的隐私策略。
support - 获取扩展的帮助和支持。 每个键的值是一个带有 uri 字段的对象,该字段是链接的绝对 URL。 |
存储库 | 描述扩展源代码存储库的属性字典 | 有效密钥: type - 存储库的类型。 示例: git。
uri - 存储库的绝对 URL。 |
徽章 | 从批准的徽章网站链接到外部元数据徽章(如 TravisCI、Appveyor 等)的链接数组 | 有效密钥:href - 用户选择徽章后导航到的链接。
uri - 要显示的徽章图像的绝对 URL。
description - 鼠标悬停时显示的徽章说明。 |
品牌 | 与品牌相关的属性的字典。 | 有效键: color - 扩展或发布者的主要颜色;可以是十六进制(#ff00ff)、RGB(rgb(100,200,50)或支持的 HTML 颜色名称(蓝色)。
theme - 补充颜色;将深色用于深色品牌颜色,或将浅色用于浅色品牌颜色。 |
了解详细信息页
- 1 - 说明
- 2 - 图标
- 3 - 类别
- 4 - 屏幕截图
- 5 - 内容(详细信息)
- 6 - 链接
- 7 - 品牌打造
警告
将 public
属性设置为 false
或省略该属性,以防止集成在准备就绪之前对所有应用市场用户可见。
将您的清单和资源打包
安装软件包工具(tfx-cli)
使用 npm
: 安装或更新适用于 Azure DevOps 的跨平台 CLI(tfx-cli)
npm i -g tfx-cli
在 .vsix 文件中打包软件集成组件
tfx extension create --manifest-globs vss-extension.json
注释
每次更新时,都要递增您的扩展或集成的版本。
如果清单中尚未更新版本,请使用 --rev-version
命令行选项。 此开关会自动递增 修补程序 版本号,并将新版本保存到清单。
将集成发布到市场
打包扩展后,您可以在某个发布者名下将其上传到应用市场。
publisher
扩展清单文件中指定的标识符必须与上传扩展的发布者的标识符匹配。
在 管理门户中,从页面顶部的下拉菜单中选择发布者。
选择 “新建扩展>Azure DevOps”。
拖放文件或将其选中以查找在上一个打包步骤中创建的 VSIX 文件,然后选择“ 上传”。
快速验证后,扩展将显示在已发布的扩展列表中。 别担心,扩展仅对你可见。
此时,你的扩展对任何帐户都不可见。 若要使它对其他人可见,需要共享扩展。
注释
Microsoft对发布的每个新的和更新的扩展包运行病毒扫描。 在扫描结果无异常之前,我们不会在市场平台发布扩展供公众使用。 这样我们还可以避免在市场页面上显示不适当的或冒犯性的内容。
分享您的集成
在 Azure DevOps 组织中安装集成之前,请与该组织共享它。 开发和测试需要共享,因为它是在这些阶段运行集成的唯一方法。
若要共享集成,请执行以下步骤:
- 从显示的项目列表中选择一个集成项
- 选择“ 共享 ”按钮
- 指定要使此集成可见的组织的名称。 例如,若要使集成对 dev.azure.com/fabrikam-fiber-inc 组织可见,请指定
fabrikam-fiber-inc
。
更新一项内容
若要更新已发布的扩展,请执行以下步骤:
小窍门
更新扩展,而不是删除并重新上传扩展。 我们建议维护两个扩展: publisher.extension
是在市场中公开供客户使用的扩展,而 publisher.extension-dev
是私人扩展,仅与您的组织共享,用于开发和测试。
不需要两个源代码副本, 只需为每个扩展维护单独的清单文件。 打包时,向 tfx-cli 工具提供相应的清单文件。 有关详细信息,请参阅 TFX 扩展命令。
- 从显示的项列表中选择扩展。
- 右键单击并选择更新以更新开发版本,例如
publisher.extension-dev
。 - 验证扩展。
- 对生产版本应用相同的更新,例如
publisher.extension
。 - 找到您扩展的 .vsix 文件并上传它。
Azure DevOps 会自动安装已具有扩展的所有帐户的更新版本。 新安装还会收到最新版本。
公开集成
要了解如何将集成公开给所有人,请参阅 公开你的清单。