首页 > 解决方案 > 使用 versioningScheme ='byEnvVar' 的 Nuget 包不起作用

问题描述

我有一个包含 2 个任务的管道作业

任务 1 (Powershell@2):我正在使用命令更新内部版本号以显示“1.0.0.0”

$版本=“1.0.0.0”

写主机“##vso[build.updatebuildnumber]$version”

我可以看到此管道运行的构建版本已更新。

任务 2 (NuGetCommand@2):我正在使用 pack 命令创建 nuget 包

- task: NuGetCommand@2
  displayName: Nuget Pack
  inputs:
    command: 'pack'
    packagesToPack: '**/${{parameters.packageid}}.nuspec'
    versioningScheme: 'byEnvVar'
    versionEnvVar: BUILD_BUILDVERSION
    configuration: '$(buildConfiguration)'

在 task2 中,它给出错误“ ##[error]No value was found for the provided environment variable.

我也尝试过 versionEnvVar: Build.BuildVersion 但它根本不起作用。

这是来自 MS NugetCommand的文档链接

有人可以指出我在这里做错了什么。

标签: azure-pipelines

解决方案


使用 versioningScheme ='byEnvVar' 的 Nuget 包不起作用

作为您的描述,您需要使用Build.BuildNumber而不是BUILD_BUILDVERSION,例如:

versioningScheme: 'byEnvVar'
versionEnvVar: Build.BuildNumber

此外,如果你想使用BuildNumber作为包版本,你可以使用:

versioningScheme: byBuildNumber


推荐阅读