Controlar una información de ensamblaje después de la barrera UInt16

En el pasado, usualmente usaba el set de cambios o el número svn para versionar el binary, ej. 1.1.123.3, donde el número grande es el set de cambios o la revolución del sistema de control fuente. Sin embargo, con el sistema que ahora utilizamos, hemos superado la barrera Uint en algo así como más de 70000 sets de cambios, lo que provoca un desbordamiento y un error de compilation cuando se utiliza como atributo de versión de ensamblaje o versión de file de ensamblaje. Ver: http://msdn.microsoft.com/en-us/library/system.reflection.assemblyversionattribute.aspx

¿Alguna estrategia alternativa que todavía vincule el binary con el set de cambios?

He adaptado mi tarea para usar la solución dada:

<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> 

Puede reiniciar y reiniciar desde 0, por lo que su revisión se verá como revision = 70000 % 50000 .

También podría usar build como parte de la revisión de control de origen como build = 70000 / 50000 .

Entonces, como resultado, sería xx1.20000 en este ejemplo.