How to: Share an Assembly with Other Applications (C# Programming Guide)
Assemblies can be private or shared: by default, most simple C# programs consist of a private assembly because they are not intended to be used by other applications.
In order to share an assembly with other applications, it must be placed in the Global Assembly Cache (GAC).
Sharing an assembly
Create your assembly. For more information, see Creating Assemblies.
Assign a strong name to your assembly. For more information, see How to: Sign an Assembly with a Strong Name.
Assign version information to your assembly. For more information, see Assembly Versioning.
Add your assembly to the Global Assembly Cache. For more information, see How to: Install an Assembly into the Global Assembly Cache.
Access the types contained in the assembly from the other applications. For more information, see How to: Reference a Strong-Named Assembly.