Recently, one of my colleague got confused on installing two versions of VS and its related framework. It triggers the process to display the installed FW versions in a machine.
Each assembly you build can be either an executable application or a DLL containing a set of types for use by an executable application. Of course, the CLR is responsible for managing the execution of code contained within these assemblies. It means that the .NET Framework must be installed on the host machine.
Microsoft has created a redistribution package that you can freely ship to install the .NET Framework on your customers’ machines. Some versions of Windows ship with the .NET Framework already installed. You can tell if the .NET Framework has been installed by looking for the MSCorEE.dll file in the %SystemRoot%\System32 directory. The existence of this file tells you that the .NET Framework is installed. However, several versions of the .NET Framework can be installed on a single machine simultaneously.
If you want to determine exactly which versions of the .NET Framework are installed, you can test the subkeys under the following registry key: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP The .NET Framework SDK includes a command-line utility called CLRVer.exe that shows all of the CLR versions installed on a machine. It can show which version of the CLR is being used by processes currently running on the machine by using the –all switch or passing the ID of the process you are interested in.