为什么 TFS 构建步骤扩展图标丢失?

Why TFS Build Step Extension Icon Is Missing?

我按照 MS 教程为 TFS 创建了一个新扩展。出于某种原因,当我将图标添加到我的扩展程序时,我可以在安装扩展程序和 "Extension Manager" 页面中看到此图标,

但是当我从构建步骤菜单中选择我的扩展程序时 图像丢失了

在 "vss-extension.json" 文件中我添加了:

"icons": {
    "default": "images/icon.png"
}, 
"files": [
    {
        "path": "images",
        "addressable": true          
    },
    {
        "path": "dist",
        "addressable": true,
        "packagePath": "scripts"
    },
    {
        "path": "infoTab.html",
        "addressable": true
    },                   
    {
        "path": "node_modules/vss-web-extension-sdk/lib",
        "addressable": true,
        "packagePath": "lib"
    },    
    {
        "path": "buildtask"
    }       
],

图像文件为 32x32

"task.json" 文件中是否也应引用此图像?

任务本身有自己的图标,它必须存储在与 task.json 相同的目录中,并且必须被称为 icon.png 且为 32x32 像素,并且可以选择附加 icon.svg可以放在旁边。这与一个扩展可以包含多个构建任务这一事实有关,每个构建任务都有自己的图标。它未从 task.json 中引用,正确的文件名将导致它被拾取。

例如,查看我的Azure Pipelines Snyk task。此外,如果这是您的完整扩展清单,那么它缺少构建任务贡献点:

"contributions": [
{
  "id": "buildtask",
  "type": "ms.vss-distributed-task.task",
  "targets": [
    "ms.vss-distributed-task.tasks"
  ],
  "properties": {
    "name": "buildtask"
  }
}

对于 Microsoft Visual Studio Team Foundation Server 版本 15.105.25910.0,接受的答案不正确。也许它对以前的版本是正确的。

  1. 图像文件必须命名为icon.png.
  2. 图像文件必须task.json位于同一文件夹中。
  3. 图像文件应该32 x 32;未应用图像缩放。

task.json 文件不包含对此文件的任何引用。它是使用这些约定定位的。