.net-core - 使用 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 文件不是多级管道的一部分时,它本身运行良好。
解决方案
推荐阅读
- python - django object has no id, or is at least not passing any id
- python - 调用外部 Python 脚本在 QT Creator 内部有效,但在外部无效
- javascript - 对于许多级别,React 递归渲染非常慢,并行性可用吗?
- sql - 带有case语句的CAST中的SQL语法错误
- loops - 如何修复 for 循环中的错误。帕斯卡
- .net - Dotnet:Dockerfile 没有这样的文件或目录
- sql - 如何将 SQL 代码转换为雪花代码
- pdf - 在 dompdf 中嵌入 pdf 文件
- microsoft-dynamics - SAP BW 和 Dynamics 365 集成
- ios - 用于 Swift 的 BSON 解析器