Я использую новые возможности построения скриптов в Visual Studio Online (а не определения сборки XAML), и я пытаюсь, чтобы номер версии сборки включал последний идентификатор Git Commit ID целевого репозитория, используя формат номера сборки.Build.SourceVersion пуст в VSO vNext Build
Я использую следующий формат номер сборки:
$(MajorVersion).$(MinorVersion).$(BuildId).$(SourceVersion)
Каких результаты в сгенерированном номере версии 1.0.1234.
- то есть значение SourceVersion пустое, что вызывает ошибку в ВСО при очередях сборки. Я также попытался квалифицировать переменную, префикс ее Build.
с тем же результатом. Для тестирования, я изменил номер сборки в следующем формате:
$(MajorVersion).$(MinorVersion).$(BuildId).$(SourceBranch)
Это правильно приводит к значению 1.0.1234.refs_heads_master
Я использую Predefined Variables ссылку и Build.SourceVersion занесен в список глобальной переменной ,
Я делаю что-то неправильно, я столкнулся с ошибкой или это по дизайну и недоступно в момент сборки в очереди? Если это по дизайну, есть ли способ автоматически включать короткий идентификатор Git Commit в формате номера сборки?
Это где я установить формат номера сборки в ВСО:
Это ошибка, я вижу, когда я явно не указать Git CommitId:
400: Номер сборки форматированная строка $ (MajorVersion). $ (MinorVersion). $ (BuildId). $ (SourceVersion) сгенерировано номер сборки 0.1.1. который содержит недопустимый символ (ы), слишком длинный или заканчивается символом '.'. Максимальная длина номера сборки - 255 символов. Символы, которые не разрешены, включают «», «/», «:», '<', '>', '\', '|', '?', '@' И '*'.
я могу добиться того, что вы описывается с помощью '$ (MajorVersion). $ (MinorVersion). $ (Build.BuildId). $ (Build.SourceVersion)'. Только что были проверены как на VSO, так и на TFS 2015. Результат выглядит следующим образом: '1.0.20.41f2983578f720695227a7a8a41ed3d7437efc30'. Вы уверены, что это не опечатка, вызывающая странное поведение на вашей стороне? –
@YanSklyarenko, я всегда получаю «Невозможно развернуть макрос $ (Build.SourceVersion), указанный в формате номера сборки (тип InvalidMacroInBuildNumberException)» Исключение, если я использую $ (MajorVersion). $ (MinorVersion). $ (Build.BuildId) . $ (Build.SourceVersion), чтобы определить формат номера сборки. Кроме того, переменная SourceVersion является последним изменением управления версиями, которое включено в эту сборку. CommitId или номер набора изменений (например, CS1234), который не должен быть чем-то вроде «41f2983578f720695227a7a8a41ed3d7437efc30». Я пропустил что-то важное? –
@ Вики, хм, это другое дело, я полагаю. Похоже, это исключение ('InvalidMacroInBuildNumberException') означает, что формат номера сборки недопустим. Я имею в виду, он ожидает, что Major.Minor.Build.Revision все будут числами, а не теми идентификаторами и хэшами. Макро-часть $ (Build.SourceVersion) работает, но вы не можете использовать ее в номере сборки. Ваш другой комментарий - commit ID в Git - это длинный хэш, 'CS1234' - это формат набора изменений TFVC. –