【问题标题】:Use build-number as nuget-package-version使用内部版本号作为 nuget-package-version
【发布时间】:2018-02-16 23:48:28
【问题描述】:

我正在使用竹子通过 msbuild 创建 nuget 包。目前,在将代码提交到 git(它会自动构建)之前,我总是必须手动修改 nuget-package-version。

我现在想使用竹子的内部版本号作为 nuget-package 的版本。

我可以使用命令行工具更改 nuget-package-version 吗?

【问题讨论】:

    标签: build msbuild nuget nuget-package bamboo


    【解决方案1】:

    是的,您可以使用 Powershell。我还没有测试脚本,但它应该可以完成这项工作。您需要将 nuspec 中的版本号定义为 $version$ ,然后在构建时更新它。这样您还可以更新其他信息。

    function Update-NuspecVersion {
    [CmdletBinding()]
    param(
        [Parameter()]
        [string]$RootFolder = $(throw "Repo folder is mandatory, please provide a value."),
    
        [Parameter()]
        [int]$BuildNumber
    )
    
    $Nuspecs  = Get-ChildItem -Path $RootFolder -Recurse  -Filter *.nuspec | Where-Object { $_.FullName -notlike "*\obj\*"}
    Foreach ($Nuspec in $Nuspecs) {
        $nuspecfile = [xml]$(Get-Content $Nuspec.FullName)
        $PackageVersion = $([xml]$(Get-Content $Nuspec.FullName) | % package).metadata.version
        if ($PackageVersion -eq '$version$') {  
            $Assembly = get-childitem $nuspec.Directory -Recurse -Filter "AssemblyInfo.Version.cs"
            if ($Assembly.Count -eq 0) {
                $Assembly = get-childitem $nuspec.Directory -Recurse -Filter "AssemblyInfo.cs"
            }
            $PackageVersion = $(Get-content $Assembly.FullName | ForEach-Object { $_ -replace '\/\/.+', ""; } | Select-String "AssemblyVersion").ToString().Split('"')[1]
        }
    
        $PackageVersionObject=[version]$PackageVersion
        if ($Branch.Type -eq "develop") {
            $PackageVersion ="{0}.{1}.{2}-{3}-{4}" -f $PackageVersionObject.major, $PackageVersionObject.Minor,  $BuildNumber, $Branch.Type, ("{0:D4}" -f  $BuildNumber) 
        }
        else {
            $PackageVersion ="{0}.{1}.{2}" -f $PackageVersionObject.major, $PackageVersionObject.Minor,  $BuildNumber
        }
    
        $nuspecfile.package.metadata.version = $PackageVersion
        $nuspecfile.Save($Nuspec.FullName)
    }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-16
      • 2013-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多