Как оптимизировать автоматическое создание номеров версий для файлов проекта в стиле SDK

#c# #.net-core #nuget

Вопрос:

Проекты после NETCORE по умолчанию используют файлы проектов в стиле SDK. Он может установить информацию о пакете в .csproj .props файле.
Я не хочу использовать:

 lt;Deterministicgt;falselt;/Deterministicgt; lt;GenerateAssemblyInfogt;falselt;/GenerateAssemblyInfogt;  [assembly:System.Reflection.AssemblyVersion("1.0.*")]  

Я хочу настроить формат версии.Существует несколько методов.

Первый

Если я напишу это, то смогу добиться результатов, но есть серьезная проблема. Он будет постоянно восстанавливать nuget,попадая в мертвый круг, занимая много компьютерных ресурсов.

 lt;PropertyGroupgt;  lt;VersionPrefixgt;1.0.0lt;/VersionPrefixgt;  lt;BuildTimegt;$([System.DateTime]::Now.ToString('yyyyMMdd-HHmmss'))lt;/BuildTimegt;  lt;VersionSuffixgt;$(BuildTime)lt;/VersionSuffixgt;  lt;/PropertyGroupgt;  

Второй

Этот метод задерживается, и иногда возникает ошибка блокировки файла процесса

 lt;PropertyGroupgt;  lt;VersionPrefixgt;1.0.0lt;/VersionPrefixgt;  lt;BuildTimegt;$([System.DateTime]::Now.ToString('yyyyMMdd-HHmmss'))lt;/BuildTimegt;  lt;VersionSuffixPropsgt;  amp;lt;Projectamp;gt;  amp;lt;PropertyGroupamp;gt;  amp;lt;VersionSuffixamp;gt;$(BuildTime)amp;lt;/VersionSuffixamp;gt;  amp;lt;/PropertyGroupamp;gt;  amp;lt;/Projectamp;gt;  lt;/VersionSuffixPropsgt;  lt;/PropertyGroupgt;   lt;Import Condition="Exists('PropertiesVersionSuffix.props')" Project="PropertiesVersionSuffix.props" /gt;   lt;Target Name="PreBuild" BeforeTargets="PreBuildEvent"gt;  lt;WriteLinesToFile File="PropertiesVersionSuffix.props" Lines="$(VersionSuffixProps)" Overwrite="true" /gt;  lt;/Targetgt;  

В дополнение к использованию шаблона T4 и cli, существуют ли какие-либо другие методы реализации?

Комментарии:

1. Штамповка номеров версий лучше всего обрабатывается вашим конвейером CI, обновляющим Directory.Build.props файл.