如何更正 Azure 管道中的包版本名称并删除构建 ID
How to correct package version name in Azure pipeline and remove build ID
我通过 CI/CD azure 管道为 dotnet 标准项目制作了一个块包。
我使用以下 yml 来定义版本。
variables:
buildConfiguration: 'Release'
Major: '1'
Minor: '1'
Patch: $[counter(variables['minor'], 1)]
...
...
- task: DotNetCoreCLI@2
displayName: 'Preparing build artifacts'
inputs:
command: pack
publishWebProjects: false
arguments: ' --configuration $(buildConfiguration) --output $(Build.ArtifactStagingDirectory)'
packagesToPack: '**/Package.csproj'
versioningScheme: byPrereleaseNumber
majorVersion: '$(Major)'
minorVersion: '$(Minor)'
patchVersion: '$(Patch)'
包构建正确,我可以通过我的发布管道发布它。
问题是,包是用一个版本后缀不断附加到它构建的。
例如:
Package 1.0.0-CI-20201203-170521
并且后缀发生变化,因为它是由 azure devops 从实际时间派生的。
我想从我的版本命名中删除这个后缀。
我不需要它,因为我的补丁版本已经很好地增加了,即使没有它,我所有的包也会有一个唯一的版本。
我试过添加
<VersionSuffix>MySuffix</VersionSuffix>
在我的 csproj 中,但它没有改变任何东西。我尝试了几种命名包版本的方法,
但没有任何效果。请问有人有解决办法吗?
您可以使用byEnvVar
来实现您的版本控制
- pwsh: |
$packageVersion = '$(Major).$(Minor).$(Patch)'
Write-Host "##vso[task.setvariable variable=PackageVersion;]$packageVersion"
- task: DotNetCoreCLI@2
displayName: 'Preparing build artifacts'
inputs:
command: pack
publishWebProjects: false
arguments: ' --configuration $(buildConfiguration) --output $(Build.ArtifactStagingDirectory)'
packagesToPack: '**/Package.csproj'
versioningScheme: byEnvVar
versionEnvVar: 'PACKAGEVERSION'
否则,如果您 select 进行版本控制,您将被迫使用一些预定义的格式:
我通过 CI/CD azure 管道为 dotnet 标准项目制作了一个块包。 我使用以下 yml 来定义版本。
variables:
buildConfiguration: 'Release'
Major: '1'
Minor: '1'
Patch: $[counter(variables['minor'], 1)]
...
...
- task: DotNetCoreCLI@2
displayName: 'Preparing build artifacts'
inputs:
command: pack
publishWebProjects: false
arguments: ' --configuration $(buildConfiguration) --output $(Build.ArtifactStagingDirectory)'
packagesToPack: '**/Package.csproj'
versioningScheme: byPrereleaseNumber
majorVersion: '$(Major)'
minorVersion: '$(Minor)'
patchVersion: '$(Patch)'
包构建正确,我可以通过我的发布管道发布它。 问题是,包是用一个版本后缀不断附加到它构建的。 例如:
Package 1.0.0-CI-20201203-170521
并且后缀发生变化,因为它是由 azure devops 从实际时间派生的。 我想从我的版本命名中删除这个后缀。 我不需要它,因为我的补丁版本已经很好地增加了,即使没有它,我所有的包也会有一个唯一的版本。
我试过添加
<VersionSuffix>MySuffix</VersionSuffix>
在我的 csproj 中,但它没有改变任何东西。我尝试了几种命名包版本的方法, 但没有任何效果。请问有人有解决办法吗?
您可以使用byEnvVar
来实现您的版本控制
- pwsh: |
$packageVersion = '$(Major).$(Minor).$(Patch)'
Write-Host "##vso[task.setvariable variable=PackageVersion;]$packageVersion"
- task: DotNetCoreCLI@2
displayName: 'Preparing build artifacts'
inputs:
command: pack
publishWebProjects: false
arguments: ' --configuration $(buildConfiguration) --output $(Build.ArtifactStagingDirectory)'
packagesToPack: '**/Package.csproj'
versioningScheme: byEnvVar
versionEnvVar: 'PACKAGEVERSION'
否则,如果您 select 进行版本控制,您将被迫使用一些预定义的格式: