Как мы можем использовать CI в Azure Devops для создания главной и всех наших ветвей функций, создания пакетов NuGet и применения имени ветви к версии NuGet, чтобы мы могли использовать эти пакеты в нашей тестовой среде и тестировать ветку функций изолированно
Прошу прощения за этот поздний ответ, надеюсь, он вам поможет.
Боюсь, мы не смогли использовать $(Build.SourceBranchName)
в формате номера сборки в качестве версии Nuget. После того, как я попробовал номер сборки в различных форматах, я обнаружил, что мы можем использовать только номер данных в качестве версии nuget при использовании номера сборки в качестве версии nuget, в противном случае мы получим ошибку, подобную вам:
"переменная должна содержать подстроку с положительным значением или
целые "
Затем я создаю ветку с числовыми данными, например 9
, она отлично работает.
Таким образом, в качестве теста мы не смогли применить имя ветви (String) к версии NuGet при использовании номера сборки в качестве версии nuget.
В качестве обходного пути я использую опцию Use an environment variable
, затем определяю переменную nugetversion
со значением $(Major).$(Minor).$(Patch)-$(Build.SourceBranchName)
:
С помощью этого обходного пути мы можем использовать имя ветви в качестве версии пакета nuget, , но также имеет некоторые ограничения, то есть мы не можем использовать некоторые предопределенные переменные, такие как $(Rev:.r)
, $(BuildID)
, это означает, что мы не можем автоматически увеличить версию пакета nuget.
Надеюсь, это поможет.