В прошлом я обычно использовал набор изменений или номер SVN для версии двоичного файла, например. 1.1.123.3
где большое число - это набор изменений или обороты из системы контроля версий.
Тем не менее, с системой, которую я сейчас использую, мы преодолели барьер uint примерно с 70000+ наборами изменений, что вызывает переполнение и ошибку компилятора при использовании в качестве атрибута версии ассемблера или атрибута версии файла сборки.
Увидеть:
http://msdn.microsoft.com/en-us/library/system.reflection.assemblyversionattribute.aspx
Какие-нибудь альтернативные стратегии, которые все еще связывают бинарный код с набором изменений?
Я адаптировал свою задачу, чтобы использовать приведенное решение:
<Target Name="Version">
<!-- Changeset exceeds u16int so cannot be used in Versioninfo-->
<Attrib ReadOnly="false" Files="$(VersionFile)"/>
<!--Assembly version must be made of uint16 this means that the version number must less than 65536-->
<!-- current changest is way past this so i will make the number changset-50000 and add a number -->
<!-- so 70000 becomes 20000.1 and 100001 becomes 1.2-->
<PropertyGroup>
<Version>$(Branch).$([MSBuild]::Subtract($(ChangeSet),$(Offset))).$(OffsetCount)</Version>
</PropertyGroup>
<AssemblyInfo CodeLanguage="CS"
OutputFile="$(VersionFile)"
AssemblyCompany="$(Company)"
AssemblyProduct="$(Product)"
AssemblyCopyright="$(Copyright)"
AssemblyVersion="$(Version)"/>
<Attrib ReadOnly="true" Files="$(VersionFile)"/>
</Target>