В DevOps Azure у меня есть переменная конвейера "версия пакета", и я задаю ее с помощью 0.1.3$(Rev:.r)-alpha
.
Я использую эту переменную длязамените «Версия» в файле проекта ядра .net.
В задачах сборки сборка dotnet выдаст мне эту ошибку:
, поэтому я предполагаю, что переменная конвейера не может использовать вложенную переменную.
Существует другой способ или другой синтаксис для этого?
[Редактировать]
Вложенные переменные должны работать.Я думаю, что ошибка заключалась в пакете dotnet, использующем автоматическое управление версиями пакета, установленное на «Использовать номер сборки», которое содержит неправильный $(rev:.r)
(строчный!).
Использование пользовательской строки для версии в файле проекта VS даетшум на VS (ошибка, если файл открыт, в противном случае предупреждение), и теперь Pipeline Build дает мне ошибку при восстановлении nuget dotnet из-за неверной версии.
Я решил использовать простую чистую версию, <Version>0.1.2</Version>
, что я могу выбрать и документировать.Затем я хочу найти способ прочитать его в конвейере сборки и создать пользовательскую переменную, присоединяющую редакцию сборки:
0.1.2 $ (Rev: .r) => 0.1.2.123
Это результат, который я хочу.
Я нашел это: https://marketplace.visualstudio.com/items?itemName=tmarkovski.projectversionasvariable
Я использую его с настройками по умолчанию.
Я использую переменные, которые она создает, для создания новой переменной, "версия пакета":
, и я использую это в пакете nuget :
, но это не работает.
Получившаяся переменная по-прежнему содержит «$ (Rev: .r)», не проанализирован.
Я попытаюсь снова использовать «Автоматическое управление версиями пакетов» и создаю номер сборки в Options ...
[Редактировать 2]
Установить номер версии сборки в работавших опциях сборки конвейера.
Это не оптимальное решение, потому что номер сборки не анализируется и выглядит ужасно.
[Решение]
$(Rev:.r)
недоступно за пределами Build / Options.
Я использовал $ (Build.BuildNumber) , и я могу создать составную переменную: $(Version.MajorMinor).$(Build.BuildNumber)-alpha
Build.BuildNumber оценивается в Build / Options: $(Build.DefinitionVersion)$(Rev:.r)
Version.MajorMinor создается Версия проекта как переменная сборки add-
Я не знаю, как получить тот же результат без использования стороннего компонента.