All the assemblies that make up the .NET Framework class library are contained in the Global Assembly Cache.
Any assembly located in the Global Assembly Cache can be referenced by any application running on a server.
The Global Assembly Cache's physical location is at the following path:
C:\WINDOWS\assembly
Before you can add an assembly to the Global Assembly Cache, you must add a strong name to the assembly.
A strong name is similar to a GUID. You use a strong name to provide your assembly with a universally unique identifier.
You can generate a strong name by using the sn.exe command-line tool like this:
sn.exe -k KeyPair.snk
Executing this command creates a new file named KeyPair.snk, which includes a new random public/private key pair.
You can compile an assembly that includes a strong name by executing the Visual Basic .NET command-line compiler like this:
csc /t:library /keyfile:KeyPair.snk /recurse:*.cs /out:MyLibrary.dll