How to Assembly versioning
Whenever a new .NET assembly is created in the .Net environment, a file named AssemblyInfo is created that contains attributes used to define the version of the assembly during compilation. All versioning of assemblies that use the common language runtime is done at the assembly level. The AssemblyVersion attribute assigns the version number of the assembly, and this is embedded in the manifest. Version information for an assembly consists of the following four values : a major and minor version number, and two further optional build and revision numbers.
This is the internal version of the product and is assigned by the application team. It should not change during the development cycle of a product release
This should only change when there is a small changes to existing features. It is assigned by the application team, and it should not be changed during the development cycle of a product release.
Typically incremented automatically as part of every build performed on the Build Server. Using the build number in conjunction with the source number allows you to identify what was built and how. This allows each build to be tracked and tested.
This is the number taken from source control to identify what was actually built. This is set to zero for the initial release of any major or minor version of the solution.