Если вы используете MSBuild, я рекомендую вам установить msbuildtasks (https://github.com/loresoft/msbuildtasks), который может быть установлен nuget.
Как только вы сделаете это, он создаст build.proj в корне вашего решения, и вы сможете создать свой собственный файл версии, который он будет использовать для управления информацией о версии.
Он поддерживает использование свойств сборки и ревизии MS, а также поддерживает переопределение даты начала
Я сделал файл версии Major и Minor и поместил их в исходную
<VersionFile Condition=" '$(VersionFile)' == '' ">$(MsBuildProjectDirectory)\VersionMajor.txt</VersionFile>
<VersionSuffixFile Condition=" '$(VersionSuffixFile)' == '' ">$(MsBuildProjectDirectory)\VersionMinor.txt</VersionSuffixFile>
В этих файлах у меня просто есть номер 2 и номер 1 (соответственно)
Затем я создал другой файл, который содержит полный номер версии (куда фактически попадает результат) как version.txt. Содержит 2.1.0.0
Затем в моей Задаче для фактической сборки я добавил
<Version VersionFile=".\Version.txt" BuildType="Automatic" RevisionType="BuildIncrement" StartDate="2015-01-01">
<Output TaskParameter="Build" PropertyName="Build" />
<Output TaskParameter="Revision" PropertyName="Revision" />
</Version>
Это дало мне параметр Build and Revision для использования в другом месте.
Там, где написана информация о сборке, я использую их все так:
AssemblyVersion="$(Version).$(VersionSuffix).$(Build).$(Revision)"
AssemblyFileVersion="$(Version).$(VersionSuffix).$(Build).$(Revision)"
И бум! У меня есть хорошие версии. Я сам управляю своим основным и второстепенным (я собираюсь переключить те, которые используют ветку git, которая также 2.1 и которую могут выполнять задачи сборки), и сборка увеличивается на количество дней с момента StartDate (которое я установил, когда сделал ветвь) и ревизия автоматически увеличивается с каждой сборкой и сбрасывается в 0, когда сборка сбрасывается в 0.
Вы можете увидеть больше, если посмотрите на исходный код buildtasks на github: https://github.com/loresoft/msbuildtasks/blob/master/Source/MSBuild.Community.Tasks/Version.cs