Невозможно установить настроенную версию продукта в конвейере Azure DevOps

Я пытаюсь установить версию продукта следующим образом:

  • Основная версия-1
  • Минорная версия-0
  • Версия – дата сборки ГГГГММДД,

использовать счетчик дней (1,2,3), но после выполнения конвейера он переопределяется .csproj в сценарии YML Azure DevOps — пример:

1.0.20240708.1

Это команда Build, которую я использую для выполнения вышеизложенного.

- 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"

77
1

Ответ:

Решено

использовать счетчик дней (1,2,3), но после выполнения конвейера он переопределяется .csproj в сценарии YML Azure DevOps

Для проекта, предназначенного для .NET Core или .NET Standard, если у вас есть версия продукта, определенная в csproj, она будет take precedence over передана в качестве аргументов MSBuild.

образец ниже:

После того, как я удалю его из csproj, аргументы MSBuild начнут работать. Поэтому попробуйте переместить свойства из csproj.


Интересные вопросы для изучения

Токен PAT не работает для аутентификации в Azure DevOpsРазмещенные агенты Azure Pipelines были обновлены и теперь содержат пакет SDK/среды выполнения .Net 5.x вместе со старой версией .Net CoreМногопоточность в Azure APIКак выбрать один коммит от разработчика к основному?Как исключить выбранные значения из других раскрывающихся списков в рабочих элементах Azure DevOps?Azure Pipelines: push был отклонен, поскольку одна или несколько фиксаций содержат адрес электронной почты автора, который не соответствует шаблонам, указанным в политикеКак выполнить git diff в конвейере Azure DevOps CI с несколькими репозиториямиРазмещенные агенты Azure Pipelines были обновлены и теперь содержат пакет SDK/среды выполнения .Net 5.x вместе со старой версией .Net CoreAzure Devops // Подключение к службе // Terraform // Конвейер Yaml -> Ошибка сборкиСрок службы .NET Core SDK/среды выполнения 2.2 и 3.0 истек (EOL) и удален из всех размещенных агентов