You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Pipelines:如何获取私有源已发布或刚构建NuGet包的版本

提取NuGet包版本号并在流水线中复用的方法

方法一:从本地构建的nupkg文件提取版本号

nupkg本质是压缩包,自带元数据,直接从本地文件提取是最可靠的方式,避免依赖私有源的网络状态。

  • 用dotnet命令快速提取
    利用dotnet nuget verify的输出解析版本号,无需解压文件:

    # 替换为你的nupkg文件路径
    $nupkgPath = "./bin/Release/YourPackage.nupkg"
    # 提取版本号
    $version = dotnet nuget verify $nupkgPath --verbosity detailed | Select-String 'Version: (\d+\.\d+\.\d+.*)' | % { $_.Matches.Groups[1].Value }
    # 将版本号设为流水线变量(以Azure DevOps为例)
    echo "##vso[task.setvariable variable=NuGetPackageVersion]$version"
    
  • 解压读取nuspec文件
    如果需要更灵活的元数据读取,可以解压nupkg后读取内部的.nuspecXML文件:

    $nupkgPath = "./bin/Release/YourPackage.nupkg"
    $tempDir = New-Item -ItemType Directory -Path "./temp_nupkg"
    # 解压nupkg
    Expand-Archive -Path $nupkgPath -DestinationPath $tempDir.FullName
    # 找到nuspec文件
    $nuspecFile = Get-ChildItem $tempDir.FullName -Filter "*.nuspec" | Select-Object -First 1
    # 从XML中提取版本号
    $version = Select-Xml -Path $nuspecFile.FullName -XPath "/package/metadata/version" | % { $_.Node.InnerText }
    # 设置流水线变量
    echo "##vso[task.setvariable variable=NuGetPackageVersion]$version"
    # 清理临时文件
    Remove-Item $tempDir.FullName -Recurse -Force
    

方法二:从私有NuGet源获取已发布包的版本号

如果已经完成发布,也可以直接查询私有源获取最新版本(适合需要确认发布结果的场景):

# 替换为你的包ID和私有源地址
$packageId = "Your.Package.Id"
$privateSource = "https://your-private-nuget-source/v3/index.json"
# 获取最新版本(包含预发布版)
$latestVersion = dotnet nuget list $packageId --source $privateSource --include-prerelease | Select-String "$packageId (\d+\.\d+\.\d+.*)" | % { $_.Matches.Groups[1].Value }
# 设置流水线变量
echo "##vso[task.setvariable variable=NuGetPackageVersion]$latestVersion"

不同CI系统的变量设置差异

  • GitHub Actions:用echo "NuGetPackageVersion=$version" >> $GITHUB_ENV替代Azure DevOps的变量设置命令
  • GitLab CI:用echo "NuGetPackageVersion=$version" >> $CI_ENVIRONMENT或设置为CI/CD变量

内容的提问来源于stack exchange,提问作者Cristi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 20:53:13