无法在Azure DevOps管道中设置自定义产品版本

问题描述 投票:0回答:1

我尝试将产品版本设置如下:

  • 主要版本-1
  • 次要版本-0
  • 修订 – 构建日期 YYYYMMDD,

基于天数计数 (1,2,3),但在管道执行后,它被 Azure DevOps YML 脚本中的 .csproj 覆盖 - 示例:

1.0.20240708.1

这是用于完成上述操作的构建命令。

- name: MSBuildArguments
  value: '/p:OutputPath="$(PackagePath)" /p:ProductVersion="$(ProductVersion)"   /p:FileVersion="$(fileVersion)" /p:Copyright="$(CopyrightText)" /p:ProductName="$(productname)"'

值在

Write-Output
时正确输出,但在管道执行后,会生成一些随机值。

但是 TFS 具有内置属性,无需任何额外命令即可运行。试图在天蓝色上找到类似的。

- name: majorVersion
  value: 1
- name: minorVersion
  value: 0
- name: buildDate
  value: $[format('{0:yyyyMMdd}', pipeline.startTime)]
- name: buildCounter
  value: $[counter('BuildCounter', 1)]
$ProductVersion = "$majorVersion.$minorVersion.$buildDate.$buildCounter"
azure-devops azure-pipelines tfsbuild cicd azure-pipelines-yaml
1个回答
0
投票

基于天数计数 (1,2,3),但在管道执行后,它被 Azure DevOps YML 脚本中的 .csproj 覆盖

对于项目目标 .NET Core 或 .NET Standard,如果您在 csproj 中定义了产品版本,它将

take precedence over
作为 MSBuild 参数传递的版本。

示例如下:

enter image description here

当我从 csproj 中删除它后,MSBuild 参数就可以工作了。因此,请尝试从 csproj 中移动属性。

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.