首页 > 解决方案 > 使用 dotnet pack 的多阶段管道在版本控制方面失败

问题描述

我试图让一个管道来构建和测试我的代码,并在另一个阶段打包和推送一个 nuget 包。

name: $(SourceBranchName)-$(Date:yyyyMMdd)$(Rev:.r)

trigger:
  branches:
    include: 
      - 'master'
  paths:
    exclude:
      - deploy/*
      
stages:
# Build, test and package for deployment
- template: deploy/build/stage.yaml
- template: deploy/build/nuget.yaml

管道在最后阶段失败,即打包 nuget 文件。

##[错误]在以下环境变量中找不到版本号数据:BUILD_BUILDNUMBER。变量的值应包含具有以下格式的子字符串:XYZ 或 XYZA,其中 A、X、Y 和 Z 是正整数。

我知道在外部 yaml 文件中,“名称”是底层版本控制方案的一部分,是这里错误的一部分。但是我可以在我的 nuget.yaml 中以某种方式覆盖外部的“名称”属性吗?

在 nuget.yaml 文件中,我正在这样做(抱歉格式化)

variables:
    buildConfiguration: 'Release'
    majorMinorVersion: 1.2
    # semanticVersion counter is automatically incremented by one in each execution of pipeline
    # second parameter is seed value to reset to every time the referenced majorMinorVersion is changed
    semanticVersion: $[counter(variables['majorMinorVersion'], 0)] 

    - task: DotNetCoreCLI@2
        displayName: 'dotnet pack'
        inputs:
          command: pack
          projects: src/**/*.csproj
          versioningScheme: byBuildNumber

当 nuget.yaml 文件不是多级管道的一部分时,它本身运行良好。

标签: .net-corenugetnuget-package

解决方案


推荐阅读