29
Versioning
·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.