Я пытаюсь установить версию продукта следующим образом:
использовать счетчик дней (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"
использовать счетчик дней (1,2,3), но после выполнения конвейера он переопределяется .csproj в сценарии YML Azure DevOps
Для проекта, предназначенного для .NET Core или .NET Standard, если у вас есть версия продукта, определенная в csproj, она будет take precedence over
передана в качестве аргументов MSBuild.
образец ниже:
После того, как я удалю его из csproj, аргументы MSBuild начнут работать. Поэтому попробуйте переместить свойства из csproj.