MSDN says “Each computer where the common language runtime
is installed has a machine-wide code cache called the global assembly cache.
The global assembly cache stores assemblies specifically designated to be
shared by several applications on the computer.”
Shared assemblies should be placed in the GAC. It would be
shared across multiple applications running on the same machine.
Assemblies deployed in the GAC should have a strong name.
The tool called gacutil.exe allows users
to create the assemblies with strong name. It guarantees unique name for the
assembly, so no one else the same assembly name.
A strong name consists of
Assembly name (simple text name)
Culture info (if provided)
Public key and private key
Strong name assemblies are signed with a digital signature.
This protects assembly from modification. Any tampering causes the verification
process that occurs at assembly load time to fail.
Strong name protect the version lineage of an assembly.