In addition to Solution 1:
GAC (Global Assembly Cache) is something each and every .NET developer should understand very well. This is a system-global collection of assemblies designed for reuse. The technology is based on
strong naming, which is, in turn, based on
public-key cryptography and 1) allows to reference assemblies by (potentially, world-unique) names rather than file names; 2) to certain extent, protects from spoofing assemblies. Please see:
http://msdn.microsoft.com/en-us/library/yf1d93sz%28v=vs.110%29.aspx[
^].
—SA