GAC=Global Assembly Cache, solves dll versioning(hell) problem. It's interesting to know how it solves the problem, each assembly is uniquely identified by 4 'things' major version number,minor version, build and revision numbers.For each differing version, the GAC silently creates a subfolder based on a hash of these and places the assembly in it.From a user perspective it seems as if, we are moving the same file in one directory and it doesn't ask if it should overwrite the file !