Я также недавно пытался реализовать версию с использованием TFS.Я создал несколько скриптов PowerShell (адаптируя другие скрипты в Интернете) для создания версий пакетов.
https://gist.github.com/oceanexplorer/6a91930419b35c1923974af265777a5f
https://gist.github.com/oceanexplorer/35e0f26962018dc8578c745060365c15
Первый шаг - это мойконвейер сборки Я использую задачу «Обновить AssemblyInfo», чтобы установить версию сборки, которая затем внедряется в библиотеки DLL.
https://marketplace.visualstudio.com/items?itemName=sebastianlux.UpdateAssemblyInfo
Изначально я встроил вышеуказанные скрипты в свой проект, чтобы получить вещино в конечном итоге в моем конвейере выпуска у меня появляется задача, которая развертывает эти сценарии сборки с помощью задачи «Установка NuGet», которая эффективно извлекает их из канала и распаковывает их.
В конвейере выпуска у меня появляется задача«Пакет версий», который представляет собой пользовательский сценарий PowerShell, который вызывает функции, определенные в двух перечисленных выше списках, для чего нужно распаковать пакеты NuGet, созданные из конвейера сборки и помещенные в каталог артефакта, и применить правильное управление версиями кпакет и архивирует это.Я использовал следующий формат номера сборки в моем конвейере сборки:
$(version.major).$(version.minor).$(version.patch).$(Date:yyyyMMdd)$(Rev:r)-CI
1.0.0.201902051-CI
This will produce a semantic build number format of:
1.0.0-alpha.201902051
Я вызываю сценарии с помощью встроенной задачи PowerShell
##-------------------------------------------
## Import Build Scripts
##-------------------------------------------
gci -Recurse "$(System.DefaultWorkingDirectory)\scripts\*.psm1" | ForEach-Object { Import-Module $_.FullName }
##-------------------------------------------
## Version Files
##-------------------------------------------
Expand-NugetPackages -packagesDirectory "$(artifact.directory)" -Verbose
Add-VersionToAssemblies -suffix "$(Release.EnvironmentName)" -semVer "2.0" -artifactsToApplyTo "nuspec" -isRelease $(isRelease) -Verbose
Compress-NugetPackages -packagesDirectory "$(artifact.directory)" -Verbose
Затем в Push-задачу NuGet для отправки пакета
Это еще один встроенный скрипт PowerShell, который устанавливает представление выпуска для фида пакетов:
##-------------------------------------------
## Import Build Scripts
##-------------------------------------------
gci -Recurse "$(System.DefaultWorkingDirectory)\scripts\*.psm1" | ForEach-Object { Import-Module $_.FullName }
##-------------------------------------------
## Set Package Quality
##-------------------------------------------
Set-PackageQuality -feedName "Libraries" -packageId $(nuget.packageId) -packageVersion $env:semanticVersion -packageQuality $(Release.EnvironmentName)