Which is the preferred, to keep your library in the folder your executable, or to register it with GAC?
You should share assemblies by installing them into the global assembly cache only when you need to. As a general guideline, keep assembly dependencies private, and locate assemblies in the application directory unless sharing an assembly is explicitly required. In addition, it is not necessary to install assemblies into the global assembly cache to make them accessible to COM interop or unmanaged code.
Refer: Global Assembly Cache
Also, Refer GAC vs BIN