As you might have noticed, the Add Reference dialog in Visual Studio displays all the assemblies in the GAC, which brings up the following question: is there a way to have this list display assemblies that aren't in the GAC? The answer is yes, and the technique couldn't be easier.
Use the REGEDIT utility to browse the following registry key:
This key has a value that contains a path to a directory, for example:
It turns out that all the assemblies deployed in this directory appear in the Add Reference and the Object Browser's Component Selector dialog box. These assemblies typically run inside the environment and are called by macros, add-ins, or user code. For example, this directory contains the extensibility.dll and VSlangProj.dll, which are wrappers around COM objects and that are used to create add-ins.
C:\Program Files\Microsoft Visual Studio .NET\Common7\IDE\PublicAssemblies
If you have assemblies that should run inside the environment but shouldn't appear in the above dialog boxes and aren't called by user code, you can deploy to another directory named PrivateAssemblies, for example:
C:\Program Files\Microsoft Visual Studio .NET\Common7\IDE\PrivateAssemblies