Tôi đã theo sát hướng dẫn thiết kế tìm thấy here, here và here, nhưng tôi cứ bị lỗi PowerShell này:TFS 2015,3 tùy chỉnh xây dựng bước không gửi các biến để kịch bản
Cannot process command because of one or more missing mandatory parameters: SourcePath FilePattern BuildRegex.
Các dữ liệu cấu hình có liên quan là bên dưới .
Tôi đã kiểm tra và kiểm tra kỹ để đảm bảo rằng các biến có trong tệp task.json
của tôi. Tôi cũng đã xem xét cấu hình cho các tác vụ làm việc khác (ví dụ: VSBuild) và không có sự khác biệt đáng kể trong khai báo biến và cú pháp thực hiện PowerShell.
Điều gì có thể xảy ra ở đây? Đây là một kiến trúc rất đơn giản - không có nhiều thứ để phá vỡ. Nhưng rõ ràng một cái gì đó đã làm được điều đó.
Từ task.json
:
"inputs": [
{
"name": "SourcePath",
"type": "filePath",
"label": "Source path",
"defaultValue": "",
"required": true,
"helpMarkDown": "Path in which to search for version files (like AssemblyInfo.* files). NOTE: this is case sensitive for non-Windows systems."
},
{
"name": "FilePattern",
"type": "string",
"label": "File pattern",
"defaultValue": "AssemblyInfo.*",
"required": true,
"helpMarkDown": "File filter to replace version info. The version number pattern should exist somewhere in the file(s). Supports minimatch. NOTE: this is casese sensitive for non-Windows systems."
},
{
"name": "BuildRegEx",
"type": "string",
"label": "Build RegEx pattern",
"defaultValue": "\\d+\\.\\d+\\.\\d+\\.\\d+",
"required": true,
"helpMarkDown": "Regular Expression to extract version from build number. This is also the default replace RegEx (unless otherwise specified in Advanced settings)."
},
{
"name": "BuildRegExIndex",
"type": "string",
"label": "Build RegEx group index",
"defaultValue": "0",
"required": false,
"helpMarkDown": "Index of the group in the Build RegEx that you want to use as the version number. Leave as 0 if you have no groups.",
"groupName": "advanced"
},
{
"name": "ReplaceRegEx",
"type": "string",
"label": "RegEx replace pattern",
"defaultValue": "",
"required": false,
"helpMarkDown": "RegEx to replace with in files. Leave blank to use the Build RegEx Pattern.",
"groupName": "advanced"
},
{
"name": "ReplacePrefix",
"type": "string",
"label": "Prefix for replacements",
"defaultValue": "",
"required": false,
"helpMarkDown": "Prefix for the RegEx result string.",
"groupName": "advanced"
},
{
"name": "ReplaceSuffix",
"type": "string",
"label": "Suffix for replacements",
"defaultValue": "",
"required": false,
"helpMarkDown": "Suffix for the RegEx result string.",
"groupName": "advanced"
},
{
"name": "FailIfNoMatchFound",
"type": "boolean",
"label": "Fail if no target match found",
"defaultValue": "false",
"required": false,
"helpMarkDown": "Fail the build if no match is found for the replace RegEx in the target file(s).",
"groupName": "advanced"
}
],
"execution": {
"PowerShell3": {
"target": "VersionAssembly.ps1"
}
}
Từ VersionAssembly.ps1
:
[CmdletBinding()]
param(
[string][Parameter(Mandatory=$True)][ValidateNotNullOrEmpty()] $SourcePath,
[string][Parameter(Mandatory=$True)][ValidateNotNullOrEmpty()] $FilePattern,
[string][Parameter(Mandatory=$True)][ValidateNotNullOrEmpty()] $BuildRegex,
[string]$BuildRegexIndex,
[string]$ReplaceRegex,
[string]$ReplacePrefix,
[string]$ReplaceSuffix,
[string]$FailIfNoMatchFound,
[string]$BuildNumber = $ENV:BUILD_BUILDNUMBER
)
@ScottLangham: Bạn đã làm gì với phiên bản từ/đến? Xem trong tài liệu cụ thể về [Phiên bản tác vụ] (https://docs.microsoft.com/en-us/vsts/build-release/concepts/process/tasks#task-versions), trong đó nêu rõ: "* Khi trẻ vị thành niên mới Phiên bản được phát hành (ví dụ 1,2 đến 1,3), bản dựng hoặc bản phát hành của bạn sẽ tự động sử dụng phiên bản mới, tuy nhiên, nếu phiên bản chính mới được phát hành (ví dụ 2.0), bản dựng hoặc bản phát hành của bạn sẽ tiếp tục sử dụng phiên bản chính được chỉ định cho đến khi bạn chỉnh sửa định nghĩa và thay đổi theo cách thủ công sang phiên bản chính mới. * " – eggyal
Tôi đã thử cả các trường nhỏ và bản vá trong phiên bản. –
@ScottLangham - Tôi đã đặt các tác vụ tùy chỉnh sang một bên trong thời gian này, nhưng nếu tôi tiếp tục nỗ lực và tìm một bản sửa lỗi cho điều này, tôi sẽ gửi cho bạn. – InteXX