This should work:
Assembly.GetExecutingAssembly().GetName().Version.ToString();
Make sure that it is called from each main project assembly.
The GetName method returns an AssemblyName object, which has other useful information.
Edit:
You can make the assembly self-registered, which requires them to be run once to update the registry.
If this is unacceptable, you can write a plug-in for installation (and / or run a separate program). And from within this code, you need to get the file name of the assembly being installed.
source share