If u want ur assembly to be used outside your application i.e. by another application @ that time it has to be install into GAC.
GAC means Global Assembly Cache.
With the help og GAC, versioning (Dll hell) problem was solved in .NET.
If u have an assembly A.dll and if u want application other than u r application to use it, then either u can make two copies of the dll and put it in there corresponding bin folder or u can put it in the GAC if u r sure that another version may come for the dll and applications may use different version of the same dll. U can register any dll to a GAC using gacutil. A strong name will be attached to the assembly if u r registering into GAC. u can make the strong name using "sn" utility. Hope u got a small idea....