Добавление «неиспользуемого» параметра группы задач VSTS - PullRequest
0 голосов
/ 20 марта 2019

Я знаю, что параметры появляются, когда они используются в задачах.Проблема в том, что я использую их и в профилях публикации (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 Ответ

1 голос
/ 21 марта 2019

Добавление «неиспользуемого» параметра группы задач VSTS

Я использовал метод, аналогичный вашему, когда столкнулся с той же проблемой, что и вы, я использую задачу Inline Powershell для Write-Output параметра.

Хотя этот метод не очень элегантен, лично считаю, что он все еще эффективен.

Как мы знаем, параметры группы задач автоматически создаются на основе переменных, используемых в задачах . Это поведение по проекту . Таким образом, нет такой опции / настройки, чтобы мы могли вручную добавлять эти «неиспользуемые» параметры в параметр группы задач VSTS.

После периода исследований я нашел решение, которое выглядело более элегантно. Мы создаем группу задач, в которую не входит «неиспользуемый» параметр, затем экспортируем группу задач и вручную редактируем файл json:

enter image description here

Затем вы можете открыть загруженный файл json в Visual Studio. Нажмите Ctrl + k Ctrl + D в Visual Studio, чтобы отформатировать файл json, после форматирования вы увидите, что есть раздел с именем input и каждым из доступных параметров. есть:

  "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

Этот метод выглядит более элегантно, но, похоже, он недостаточно эффективен. Вот почему я сказал, что предыдущий метод не очень элегантен, лично я считаю, что он все еще эффективен.

Если это важно для вас, вы можете отправить запрос на функцию, которую мы могли бы вручную добавить параметр группы задач на предложить сайт функции :

enter image description here

Надеюсь, это поможет.

...