Hi All, What are assemby version like major.minor.build.revision? What does it mean?
It's the indicator for the software version that the assembly represents.
The leftmost number usually represents large changes that break compatibility with earlier versions, while the rightmost number represents the individual change number.
.NET uses an auto numbering for revision, because one would have to be too diligent to change it. However, build systems can inject the source control revision number during the build process to make it more meaningful.
Assembly Versions are a way to allow for backwards or forwards compatibility in your applications.
For instance: you could specify that your application requires a reference to a third-party library (NHibernate for instance) of a specific version or higher.
You can do the same thing with the .NET Framework itself by requiring that a certain version of the .NET Framework be installed.
Having Assembly versions also allows you to maintain one or more copies of an assembly in the GAC simultaneously, letting your program select which version of the assembly it wants. This can be quite useful when you're upgrading a third-party library reference, etc.
Versioning is a pretty important concept in the .NET framework and I couldn't do it justice in a simple post here.
http://msdn.microsoft.com/en-us/library/51ket42z(VS.71).aspx
I recommend also to read CLR via C# by Jeffrey Richter.
In addition to the technical use, product managers and marketting can have an influence on what version number or name is.
Consider MS C/C++ 7 was followed by Visual C++ 1.0. Or Windows XP and Vista for versions 5.1 and 6.