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

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
    • 此文件是你的Marketplace上架项目的声明文件,其中包含多个属性,用于在Marketplace列表中描述你的扩展。 可以 在此处浏览扩展清单参考

扩展清单

  1. 使用以下 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"
        }
    }
    
  2. 根据以下参考资料更新 JSON:

这些属性是必需的:

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

注释:
    - 如果要以编程方式发布扩展,请使用 tfx-cli 的版本 >=0.6.3。
    - 如果使用 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 像素)。 每个键的值是扩展中图标文件的路径
标签 用于帮助用户查找扩展的字符串标记数组。 示例: agileproject managementtask timer等等。
屏幕截图 未能包含在内容中的图像数组。 内容中使用屏幕截图时,它们的价值更高,应该用以帮助为扩展创建高质量的市场详情页面。 对于不太重要且未在内容中突出显示的图像,请使用屏幕截图。 每个图像应为 1366x768 像素。 每个项目的 path 是扩展中文件的路径。
内容 向用户描述扩展的内容文件字典。 每个 扩展都应包含优质内容。 这是你用来向用户展示扩展功能的方法。 使其内容丰富、易于理解,并在必要时包含屏幕截图。 将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 - 品牌打造

卡片

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

将您的清单和资源打包

获取包工具 (tfx-cli)

可以使用命令行中的 Node.js组件安装或更新 Azure DevOps 的跨平台 CLI(tfx-clinpm)。

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 以获取扩展并上传它。

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

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

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