Предопределенная переменная пуста при создании выпуска VSTS

У меня есть проект Service Fabric, настроенный с компакт-диском в VSTS. Процесс CD был настроен с помощью мастера CD в Visual Studio. Пока все хорошо, но когда релиз сделан, я не получаю никакой пользы от предопределенная переменная с именем Build.DefinitionName, которую я использую для именования выпусков.

Вот как настроено мое имя выпуска: $(Build.DefinitionName)-$(date:yyyyMM).$(rev:r)

Если мы посмотрим в журнале выпуска, для переменных нет значения:

[BUILD_DEFINITIONNAME] --> []
[RELEASE_ARTIFACTS_{Primary artifact alias}*_DEFINITIONNAME] --> []

*Это значение заполнено правильно.

И, согласно документам первичных переменных артефакта, две вышеуказанные переменные должны быть одинаковыми.

В результате этого мои выпуски называются $(Build.DefinitionName)-201702.7

Если я вместо этого использую Build.BuildNumber. Я получаю правильное значение.

Как я могу заполнить переменные?


Обновить

При создании определений сборки и выпуска вручную $(Build.DefinitionName) правильно заполняется на стороне выпуска. Но проблема появляется, когда вы используете мастер компакт-дисков из Visual Studio. Я мог что-то упустить, но настройки определения сборки идентичны. Или с мастером компакт-дисков происходит что-то странное.


comment
Вы пытаетесь передать переменные, чтобы освободить управление от процесса сборки?   -  person MrHinsh - Martin Hinshelwood    schedule 22.02.2017
comment
Я не могу воспроизвести эту проблему. (название выпуска: $(Build.DefinitionName)-$(date:yyyyMM).$(rev:r), тогда результатом будет ClassTestVNext-201702.3) Можно ли воспроизвести эту проблему с новым определением сборки и выпуска? Каков подробный журнал выпуска?   -  person starian chen-MSFT    schedule 23.02.2017
comment
@MrHinsh Да, точно. Читая документацию, у меня сложилось впечатление, что это должно работать из коробки.   -  person user5351799    schedule 23.02.2017
comment
@ starain-MSFT Я только что попытался настроить новую сборку и определение выпуска вручную. Я тоже не смог воспроизвести ошибку. Но когда я использовал CD Wizard из Visual Studio, я снова получил ту же ошибку. Сравнил все настройки, и они идентичны в определении сборки. Поэтому моим обходным путем было бы создание моих определений вручную.   -  person user5351799    schedule 23.02.2017
comment
Каковы шаги использования мастера компакт-дисков из Visual Studio?   -  person starian chen-MSFT    schedule 23.02.2017
comment
@ starain-MSFT Вы указываете командный проект, репозиторий, агент, кластер sf и называете определения сборки и выпуска. Это просто добавление определений сборки и выпуска Service Fabric по умолчанию.   -  person user5351799    schedule 23.02.2017
comment
Да, я тоже могу воспроизвести эту проблему. Таким образом, решение состоит в том, чтобы создать определение выпуска вручную, я публикую ответ, который вы можете принять как ответ.   -  person starian chen-MSFT    schedule 23.02.2017


Ответы (2)


Решение состоит в том, чтобы вручную создать определение выпуска в веб-доступе и установить непрерывное развертывание.

person starian chen-MSFT    schedule 23.02.2017

Если номер сборки передается из сборки в выпуск, нет готового способа передать больше переменных между сборкой и выпуском.

Однако для этого я пишу ряд задач сборки: https://marketplace.visualstudio.com/items?itemName=nkdagility.variablehydration

Он состоит из двух задач, первая сохраняет указанные переменные в файл json, который вы должны поместить в вывод сборки.

Второй восстанавливает нужные вам переменные. Особенно полезно, если у вас есть сборка с несколькими исходными кодами для вашего релиза.

person MrHinsh - Martin Hinshelwood    schedule 22.02.2017