How to deal with the Y2K7 problem — file versions and AssemblyInfoTask
If you use the AssemblyInfoTask to stamp the version numbers for your assemblies that you build with MSBuild as part of your Team Build process, you may run into the “Y2K7” problem. The version number is stored as a 16-bit (yes, 16 not 32) unsigned integer. With the format YMMDD, January 1, 2007 becomes 70101, which is 70,101 and doesn’t fit in a 16-bit integer. Internally, the version numbering has been reset to have a smaller number for the year. For the last part of 2006, builds were 1MMDD. Starting with 1/1/07, they are 2MMDD. Neil Enns discusses the issue in the MSBuild Team Blog in a post titled, Fixing invalid version number problems with the AssemblyInfoTask. He provides more background in the follow up post, Why are build numbers limited to 65535?