#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
файл.