С библиотекой .NET Framework вы можете указать версию с помощью подстановочного знака, а команда пакета NUGET автоматически добавит дату и версию сборки при запуске задачи сборки NUGET в VSTS.
[assembly: AssemblyVersion("1.0.*")]
NUGET PACK сгенерирует файл NUPKG с версией, подобной 1.0.6604.1234
, с добавлением номера даты и идентификатора сборки.
NET Стандартные выпуски
В стандартах .NET Core и .NET новый формат .csproj
не поддерживает этот формат с подстановочными знаками.
Мы не можем упаковать с Nuget.exe (причина: эта проблема ), но мы можем использовать dotnet pack
, за исключением того, что мне нужно автоматически увеличивать номера сборки. dotnet
Задача сборки в VSTS позволяет полностью заменить номер версии, но я хочу сохранить версию в файле csproj и просто добавить номер сборки (как я привык).
Я обнаружил, что использование <VersionPrefix>x.y</VersionPrefix>
в файле csproj будет работать с nuget pack
, и тогда я мог бы добавить дополнительный параметр VersionSuffix=$(Build.BuildNumber)
в задачу упаковки.
Все выглядело хорошо, пока первый разработчик не обновил версию проекта в диалоге свойств проекта. Visual Studio проигнорировала VersionPrefix и установила тег <Version>
- а исправление номера сборки игнорируется, поскольку существует тег Version
.
Есть ли способ прочитать Version
из csproj? Если это так, я мог бы установить свойство сборки на Version=$(ProjectVersion).$(Build.BuildNumber)
?
Или есть альтернативные способы автоматического увеличения версии сборки при упаковке?