Take System.dll for an example:
I found one here: C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\Profile\Client\System.dll
one here: C:\Windows\Microsoft.NET\Framework\v4.0.30319\System.dll
and one here: C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll
Why can’t we just have only the one in GAC?
DLL files in the
Reference Assembliesfolder are stub files that contain member declarations and no actual code.They’re used by Visual Studio to show you which members are available in the profile you’re targetting.
You’ll see different sets of reference assemblies, with non-identical DLL files, for the Client Profile, Portable Class Libraries, and Metro-style apps.