首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用build-number作为nuget-package-version

使用build-number作为nuget-package-version
EN

Stack Overflow用户
提问于 2017-09-08 14:21:16
回答 1查看 409关注 0票数 0

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

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

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

EN

回答 1

Stack Overflow用户

发布于 2018-01-19 23:08:22

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

代码语言:javascript
复制
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)
}
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46109902

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档