Сборка VSTS - не удалось найти данные номера версии в BUILD_BUILDNUMBER

Настраивая простую библиотеку классов для сборки и публикации в собственной ленте VSTS, я вижу эту ошибку при запуске пакета NuGet.

Не удалось найти данные номера версии в BUILD_BUILDNUMBER

У меня установлена ​​опция "Использовать номер сборки для версии пакета". Ожидается, что VSTS просто работать.

3 ответа

Подсказка для "Использовать номер сборки для версии пакета" гласит:

Будет использовать номер сборки для версии вашего пакета. В разделе "Общие" установите формат сборки "$(BuildDefinitionName)_$(Year:yyyy).$(Month).$(DayOfMonth)$(Rev:.r)'

После этого мне удалось решить эту проблему (и перейти к новой).

Значение по умолчанию:

[Значение по умолчанию]

Правильное значение:

[Правильное значение]

Это потому, что ваш номер сборки не соответствует регулярному выражению в шаге "Nuget Packager". Ниже приведено регулярное выражение, используемое заданием Nuget Packager для поиска номера сборки. Вы можете установить свою базу формата номера сборки на этом. Вообще, формат как 1.2.3 или 1.2.3.4 будет работать.

Write-Verbose "Autoversion: Getting version number from build"
##Get Version from Build

# Regular expression pattern to find the version in the build number 
# and then apply it to the assemblies
$VersionRegex = "\d+\.\d+\.\d+(?:\.\d+)?"

Если вы хотите major.minor.patch.unique-to-build тогда вы используете Use the date and time вариант.

В yaml эквивалент

- task: NuGetCommand@2
  displayName: Pack
  inputs:
    command: 'pack'
    packagesToPack: '**/*.csproj'
    versioningScheme: 'byPrereleaseNumber'
    majorVersion: '1'
    minorVersion: '0'
    patchVersion: '0'

У меня была переменная в моем файле.nuspec:

<tags>Build#$build$</tags>

это было неправильно параметризовано на этапе сборки пакета. Открыв шаг пакета в редакторе сборки, я расширил раздел "Дополнительно", добавив в "Дополнительные свойства сборки" этот текст

build=$(Build.BuildNumber)
Другие вопросы по тегам