How to Assembly versioning

When developing a new .NET assembly in the .NET environment, an AssemblyInfo file is automatically generated, which contains attributes used to define the assembly's version during the compilation process. In the common language runtime, assembly versioning is performed at the assembly level. The AssemblyVersion attribute is used to assign a specific version number to the assembly, which is then embedded in the assembly's manifest.

The version information for an assembly typically consists of four values: a major version number, a minor version number, and optionally, a build number and a revision number. These version numbers play a crucial role in identifying and managing different versions of the assembly, enabling developers to track and control changes made to the assembly over time.

Major Version

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

Minor Version

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.

Build Number

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.