Naturally, a key task for the runtime is to locate and load assemblies required by applications on an on-demand basis. The component responsible for this is called fusion. (Remember the CLR’s code name?) When an assembly is requested for loading, fusion searches a set of known locations for a matching assembly.
As you might have guessed, this process is based on the name of the requested assembly. However, naming for assemblies is not always as straightforward as dealing with simple names like
Calculator. To help deal with the versioning hell, assemblies can have strong names that extend beyond simple names by adding things such as version information and publisher information. This way, an application that was built to use a ...