·Assemblies
can be public or private:
–A private
assembly is used only by one executable, and no version information is checked at loadtime.
•Private assemblies are contained in the project directory or, if there is
a config file, in a subdirectory
of the project directory.
–A shared assembly is used by more than one executable, and is loaded only
if the version number
is compatible with the using executable.
•Shared
assemblies reside in the Global Assembly Cache (GAC), a specific directory.
•Version
compatibility rules can be configured by the user.
–Since no registry entries are made for the assembly, each user executable
can attach to its own
version of the assembly. This is called
side-by-side execution
by Microsoft.
–A shared
assembly is created from a private assembly, using one of Microsoft’s utilities provided for that purpose.