A When multiple versions of an assembly are available on the search path (AKA private assemblies), the runtime will use the first matching assembly with a version number equal to or higher than the assembly version that was originally linked against.
B When assemblies are resolving in the GAC (AKA shared assemblies), both the originator and the version are considered in determining the appropriate assembly.
C Configuration files can be used to override the version specified at build time.
D Strong Names are not required to utilize .NET's versioning capabilities