如何在可用的前提下对 TFS 2015 执行自定义任务
How do you make a custom task to TFS 2015 on premises avaliable
我遵循了多个指南并为我的构建步骤创建了一个 VSIX。我让管理员上传它们并将它们安装到我的团队项目 collection。问题是当我查看构建时,它们无法作为任务引入。我需要做什么才能让他们出现?
我附上了下面上传的屏幕截图。还有我的 json 配置文件的编辑副本。我不知道出了什么问题。我也尝试使用 tfx 工具上传它,但它要求个人访问令牌。
我不相信它在 2015 年可用。我尝试使用解决方法,但 fiddler 给我一个严重的 header 错误。如果有人能指出我的错误,将不胜感激。
vss-extension.json
{
"manifestVersion": 1,
"id": "Archive-Source-Task",
"name": "Archive Source",
"public": false,
"version": "1.0.1",
"publisher": "redacted",
"description": "Copy the source",
"targets": [
{
"id": "Microsoft.VisualStudio.Services"
}
],
"categories": [
"Build and release"
],
"files": [
{
"path": "Task"
},
{
"path": "bin"
}
],
"contributions": [
{
"id": "Archive Source",
"type": "ms.vss-distributed-task.task",
"targets": [
"ms.vss-distributed-task.tasks"
],
"properties": {
"name": "task"
}
}
],
"tags": [
"Build",
"Release",
"Management",
"Utility",
"Tasks"
]
}
task.json
{
"id": "27203bc5-f3f1-4f80-b2ea-8f62dd4790f1",
"name": "Archive Source",
"description": "Copies your source",
"helpMarkDown": "",
"category": "Utility",
"author": "",
"version": {
"Major": 1,
"Minor": 0,
"Patch": 0
},
"groups": [
{
"name": "advanced",
"displayName": "Advanced",
"isExpanded": false
}
],
"instanceNameFormat": "Archive Source",
"visibility": [
"Build"
],
"execution": {
"PowerShell": {
"target": "$(currentDirectory)\ArchiveSource.ps1",
"argumentFormat": "",
"workingDirectory": "$(currentDirectory)"
}
}
}
当我们使用 TFS 2015 时,我们按照本文所述部署了我们的任务:https://blogs.infosupport.com/custom-build-tasks-in-tfs-2015/
主要区别在于您不需要 vss-extension.json
并且您可以使用此 link.
中提供的强大 shell 脚本部署它
后来当我们迁移到 TFS 2017 时,我们不得不更改构建任务以像您一样部署它。
根据您的 vss-extension.json 文件中的文件部分:
"files": [
{
"path": "Task"
},
{
"path": "bin"
}
],
我怀疑你用来放置任务文件的文件夹命名为"Task"而不是"task",所以在贡献部分,你也应该在属性中使用"Task" :
"contributions": [
{
"id": "Archive Source",
"type": "ms.vss-distributed-task.task",
"targets": [
"ms.vss-distributed-task.tasks"
],
"properties": {
"name": "Task"
}
}
],
我遵循了多个指南并为我的构建步骤创建了一个 VSIX。我让管理员上传它们并将它们安装到我的团队项目 collection。问题是当我查看构建时,它们无法作为任务引入。我需要做什么才能让他们出现?
我附上了下面上传的屏幕截图。还有我的 json 配置文件的编辑副本。我不知道出了什么问题。我也尝试使用 tfx 工具上传它,但它要求个人访问令牌。
我不相信它在 2015 年可用。我尝试使用解决方法,但 fiddler 给我一个严重的 header 错误。如果有人能指出我的错误,将不胜感激。
vss-extension.json
{
"manifestVersion": 1,
"id": "Archive-Source-Task",
"name": "Archive Source",
"public": false,
"version": "1.0.1",
"publisher": "redacted",
"description": "Copy the source",
"targets": [
{
"id": "Microsoft.VisualStudio.Services"
}
],
"categories": [
"Build and release"
],
"files": [
{
"path": "Task"
},
{
"path": "bin"
}
],
"contributions": [
{
"id": "Archive Source",
"type": "ms.vss-distributed-task.task",
"targets": [
"ms.vss-distributed-task.tasks"
],
"properties": {
"name": "task"
}
}
],
"tags": [
"Build",
"Release",
"Management",
"Utility",
"Tasks"
]
}
task.json
{
"id": "27203bc5-f3f1-4f80-b2ea-8f62dd4790f1",
"name": "Archive Source",
"description": "Copies your source",
"helpMarkDown": "",
"category": "Utility",
"author": "",
"version": {
"Major": 1,
"Minor": 0,
"Patch": 0
},
"groups": [
{
"name": "advanced",
"displayName": "Advanced",
"isExpanded": false
}
],
"instanceNameFormat": "Archive Source",
"visibility": [
"Build"
],
"execution": {
"PowerShell": {
"target": "$(currentDirectory)\ArchiveSource.ps1",
"argumentFormat": "",
"workingDirectory": "$(currentDirectory)"
}
}
}
当我们使用 TFS 2015 时,我们按照本文所述部署了我们的任务:https://blogs.infosupport.com/custom-build-tasks-in-tfs-2015/
主要区别在于您不需要 vss-extension.json
并且您可以使用此 link.
后来当我们迁移到 TFS 2017 时,我们不得不更改构建任务以像您一样部署它。
根据您的 vss-extension.json 文件中的文件部分:
"files": [
{
"path": "Task"
},
{
"path": "bin"
}
],
我怀疑你用来放置任务文件的文件夹命名为"Task"而不是"task",所以在贡献部分,你也应该在属性中使用"Task" :
"contributions": [
{
"id": "Archive Source",
"type": "ms.vss-distributed-task.task",
"targets": [
"ms.vss-distributed-task.tasks"
],
"properties": {
"name": "Task"
}
}
],