添加“未使用的” VSTS任务组参数

时间:2019-03-20 16:27:44

标签: azure-devops azure-pipelines

我知道参数在任务中使用时会出现。问题是我也在发布配置文件(Visual Studio Build -> MSBuld Arguments -> /p:PublishProfile)中使用了它们,并且没有直接在我的任务组中直接引用参数。

示例.pubxml的一部分:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <PropertyGroup>
        [...]
        <LastUsedBuildConfiguration>$(BuildConfiguration)</LastUsedBuildConfiguration>
        [...]
        <PrecompileBeforePublish>$(PrecompileBeforePublish)</PrecompileBeforePublish>
        [...]
    </PropertyGroup>
</Project>

$(BuildConfiguration)被替换为参数值,因为它在Visual Studio构建任务中使用(并在任务组中显示为参数),但是$(ProcompileBeforePublish)仅在发布配置文件和值根本无法在任务组中设置。

我尝试将参数添加到任务标题中,但未显示在参数列表中。

我最终添加了一个“ cmd”并回显了变量,但这似乎很混乱-还有另一种方法吗?

1 个答案:

答案 0 :(得分:1)

  

添加“未使用的” VSTS任务组参数

遇到与您相同的问题时,我使用了与您类似的方法,我使用Inline Powershell任务来Write-Output参数。

虽然这种方法不是很优雅,但个人认为它仍然是一种有效的方法。

我们知道,任务组参数是根据任务中使用的变量自动创建的。此行为是设计上的。因此,没有这样的选项/设置,我们可以将那些“未使用”的参数直接手动添加到VSTS任务组参数中。

经过一段时间的调查,我发现了一个看起来更优雅的解决方案。我们创建一个不包含“未使用”参数的任务组,然后导出任务组并手动编辑json文件:

enter image description here

然后您可以使用Visual Studio打开下载的json文件,在Visual Studio中按Ctrl + k Ctrl + D格式化json文件,格式化后您可以看到有一个名为inputs的部分,每个部分可用参数:

  "inputs": [
    {
      "aliases": [],
      "options": {},
      "properties": {},
      "name": "BuildConfiguration",
      "label": "BuildConfiguration",
      "defaultValue": "Debug",
      "required": true,
      "type": "string",
      "helpMarkDown": "",
      "groupName": ""
    },

现在,我们可以模仿它添加“未使用”参数$(PrecompileBeforePublish),例如:

  "inputs": [
    {
      "aliases": [],
      "options": {},
      "properties": {},
      "name": "BuildConfiguration",
      "label": "BuildConfiguration",
      "defaultValue": "Debug",
      "required": true,
      "type": "string",
      "helpMarkDown": "",
      "groupName": ""
    },

    {
      "aliases": [],
      "options": {},
      "properties": {},
      "name": "PrecompileBeforePublish",
      "label": "PrecompileBeforePublish",
      "defaultValue": "True",
      "required": true,
      "type": "string",
      "helpMarkDown": "",
      "groupName": ""
    },

然后,您必须将json文件导入任务组。不幸的是,这只会复制任务组,并且您将无法覆盖现有任务组,因此我们可以在新任务组中看到“未使用”参数:

enter image description here

此方法看起来更优雅,但效率似乎还不够。这就是为什么我说以前的方法不是很优雅,我个人认为它仍然是一种有效的方法。

如果这对您很重要,则可以提交一项功能请求,以便我们可以在suggest a feature site上手动添加任务组参数:

enter image description here

希望这会有所帮助。