Azure DevOps Services |Azure DevOps Server |Azure DevOps Server 2022
在 Visual Studio Marketplace 上发布与 Azure DevOps 集成的工具、服务或产品。 市场是用户发现集成和扩展的中心中心。
注释
本文介绍 集成 (外部工具和服务)。 有关 扩展 (在 Azure DevOps 中运行的加载项),请参阅 包和发布扩展。
先决条件
在发布到市场之前,必须满足以下要求列表。
| 类别 | 要求 |
|---|---|
| 打包工具 | 安装扩展打包工具(TFX)。 从命令提示符运行 npm install -g tfx-cli 。 |
| 图像权限 | 确保你有权使用任何图像,如图标、徽标、屏幕截图等。 |
| 市场概述 | 包括一个全面的 overview.md 文件,用于描述您的市场清单。 |
| 扩展图标 | 包括表示集成、公司或组织的扩展的图标,大小至少为 128x128 像素(PNG 或 JPEG)。 |
| Microsoft产品名称 | 对Microsoft产品使用全名(例如,Azure DevOps 而不是 AzDO 或其他缩写)。 |
| 品牌名称 | 请勿在扩展名称中使用品牌名称。 |
还需要以下资产:
- 您的集成至少要有一个截图
- 用户的引导操作或入门 URL
创建发布商
每个扩展或集成(包括来自Microsoft的扩展或集成)都必须具有发布者。 任何人都可以创建发布者并在其下发布扩展。 还可以与其他用户(例如开发团队)共享发布者访问权限。
如果你不是现有发布者的一部分,请选择“ + 创建发布者”。
输入发布者名称;根据条目自动填充 ID 字段。
注释
- 确保发布者名称在多字节字符的 16 个字符内。
- 保存发布者 ID - 需要在扩展的清单文件中使用它。
如果未提示创建发布者,请滚动到“相关网站”下的“发布扩展”。
- 设置唯一的发布者标识符,例如
mycompany-myteam。 请在清单中的publisher属性中使用此值。 - 设置显示名称,例如
My Team。
查看 市场发布者协议,然后选择“ 创建”。
创建发布者后,可以管理项目,尽管发布前不会显示任何项目。
设置项目结构
创建以下目录布局:
home/
├── images/
│ ├── integration-logo.png (128×128 px minimum)
│ └── screenshot.png (1366×768 px)
├── overview.md
└── vss-integration.json
| File | Purpose |
|---|---|
overview.md |
GitHub 风格 Markdown 的集成说明。 |
vss-integration.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"
}
}
使用以下引用更新字段:
| 资产 | 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 BoardsAzure 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- 补充颜色;将深色用于深色品牌颜色,或将浅色用于浅色品牌颜色。 |
警告
将public设置为false或将其省略,直到你准备好公开显示为止。
打包集成
安装打包工具(如果尚未安装):
npm install -g tfx-cli将集成打包到 .vsix 文件中:
tfx extension create --manifest-globs vss-integration.json小窍门
使用
--rev-version自动递增补丁版本号。
发布到应用市场
打包扩展后,您可以在某个发布者名下将其上传到应用市场。
publisher
扩展清单文件中指定的标识符必须与上传扩展的发布者的标识符匹配。
在 管理门户中,从页面顶部的下拉菜单中选择发布者。
选择 “新建扩展>Azure DevOps”。
拖放文件或将其选中以查找在上一个打包步骤中创建的 VSIX 文件,然后选择“ 上传”。
快速验证后,扩展将显示在已发布的扩展列表中。 别担心,扩展仅对你可见。
此时,你的扩展对任何帐户都不可见。 若要使它对其他人可见,需要共享扩展。
注释
Microsoft对发布的每个新的和更新的扩展包运行病毒扫描。 在扫描结果无异常之前,我们不会在市场平台发布扩展供公众使用。 这样我们还可以避免在市场页面上显示不适当的或冒犯性的内容。
共享集成
必须先与该组织共享集成,然后才能在 Azure DevOps 组织中安装集成。
- 从显示的项列表中选择集成项目。
- 选择共享。
- 输入组织名称(例如,
fabrikam-fiber-incfordev.azure.com/fabrikam-fiber-inc)。
更新系统集成
若要更新已发布的扩展,请执行以下步骤:
小窍门
更新扩展,而不是删除并重新上传扩展。 我们建议维护两个扩展: publisher.extension 是在市场中公开供客户使用的扩展,而 publisher.extension-dev 是私人扩展,仅与您的组织共享,用于开发和测试。
不需要两个源代码副本, 只需为每个扩展维护单独的清单文件。 打包时,向 tfx-cli 工具提供相应的清单文件。 有关详细信息,请参阅 TFX 扩展命令。
- 从显示的项列表中选择扩展。
- 右键单击并选择更新以更新开发版本,例如
publisher.extension-dev。 - 验证扩展。
- 对生产版本应用相同的更新,例如
publisher.extension。 - 找到您扩展的 .vsix 文件并上传它。
Azure DevOps 会自动安装已具有扩展的所有帐户的更新版本。 新安装还会收到最新版本。
公开集成
若要使集成对所有市场用户可见,请在清单中将public 标志设置为true并重新发布。
有关公共列表所需的资格的详细信息,请参阅 公开扩展。