NPM с автоматическим контролем версий пакета NuGet
Боюсь, что не существует такого способа выполнить эту задачу напрямую.Потому что $(Rev:.r)
это номер сборки в этот день.Используйте $(Rev:.r)
, чтобы каждая завершенная сборка имела уникальное имя.Когда сборка завершена, если больше ничего в номере сборки не изменилось, целочисленное значение Rev увеличивается на единицу.Это значение хранится в базе данных.
В качестве теста я создал задачу Inline Powershell
для изменения значения при сбое задачи сборки / выпуска.
Я использую сценарий powershell Write-Host "##vso[build.updatebuildnumber]$newVersionNumber"
для обновленияbuild.updatebuildnumber
(я использую build.updatebuildnumber
в качестве версии пакета nuget.) и задаю опцию Run this task
как Только в случае сбоя предыдущей задачи :
![enter image description here](https://i.stack.imgur.com/3r6pe.png)
Чтобы увидеть, какие переменные вы можете использовать для построения и выпуска конвейеров, проверьте следующие страницы: - Переменные сборки - Выпуск переменных .
Ниже приведены сценарии powershell для изменения build.updatebuildnumber
:
$vstsCurrentVersionNumber = $Env:BUILD_BUILDNUMBER
$currentVersionNumber = $vstsCurrentVersionNumber.Split(".")
$revisionNumber = $currentVersionNumber[3]
$newRevisionNumber = [int]$revisionNumber -1
$newVersionNumber = $currentVersionNumber[0] + "." +
$currentVersionNumber[1] + "." + $currentVersionNumber[2] + "." +
$newRevisionNumber
$env:VersionNumber = $newVersionNumber
Write-Host "Update Build Number To: $newVersionNumber"
Write-Host "##vso[build.updatebuildnumber]$newVersionNumber"
Действительно, если задача сборки / выпуска не удалась, номер сборки будет изменен в этом здании .
Однако, когда мы выполняем сборку / выпуск в следующий раз, buildnumber/$(Rev:.r)
все еще увеличивается в зависимости от последнего неудачного результата сборки :
![enter image description here](https://i.stack.imgur.com/nUZCo.png)
В качестве обходного пути мы могли бы установить значение для версии пакета nuget, например 1.0.0.И добавьте задачу Inline Powershell, чтобы увеличить значение версии на единицу каждый раз, когда мы успешно собираем / выпускаем.Не выполняйте задачу Inline Powershell при сбое сборки / выпуска.
Надеюсь, это поможет.