Я внимательно следил за дизайн руководство нашел here, here и here, но я получаю эту ошибку PowerShell:TFS 2015,3 шаг настраиваемого построения не отправляет переменные в скрипт
Cannot process command because of one or more missing mandatory parameters: SourcePath FilePattern BuildRegex.
Соответствующие данные конфигурации находится ниже ,
Я проверил и дважды проверил, чтобы переменные присутствовали в моем файле task.json
. Я также рассмотрел конфигурацию для других рабочих задач (например, VSBuild), и нет существенной разницы в объявлении переменной и синтаксисе синтаксиса PowerShell.
Что здесь может быть не так? Это очень простая архитектура - не так много сломать. Но, очевидно, что-то это делало.
От 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"
}
}
От 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: Что вы натолкнули на версию с/на? См., В частности, документацию по [Версия задачи] (https://docs.microsoft.com/en-us/vsts/build-release/concepts/process/tasks#task-versions), которая гласит: «* Когда новый несовершеннолетний версия версии (например, от 1,2 до 1,3), ваша сборка или релиз будет автоматически использовать новую версию. Однако, если выпущена новая основная версия (например, 2.0), ваша сборка или релиз будет продолжать использовать основную версию, которую вы указанном до тех пор, пока вы не отредактируете определение и не измените его вручную. * « – eggyal
Я пробовал как мелкие, так и патч-поля в версии. –
@ScottLangham - На данный момент я настраивал пользовательские задачи в сторону, но если я возобновляю усилия и найду исправление для этого, я отправлю его вам. – InteXX