2. February 2013 09:56
Locating custom assemblies in GAC is bit different for SharePoint 2013 when compared to SharePoint 2010. This difference is due to .net version on which these version of SharePoint are depending on. Although this is a very old topic for people who are working on Asp.net, I thought of sharing it for SharePoint folks who are struggling to find out what happened to their dll.
After the release of .net 4.0, assemblies are classified into 2 segments and are deployed in 2 locations depending on their version of core. All assemblies built on .net versions up to 3.5 are deployed into “C:\Windows\assembly”. Assemblies that are built on .net 4.0 and above are deployed into “c:\windows\microsoft.net\assembly”.
Since SharePoint 2013 is based on .net 4.5, “c:\windows\microsoft.net\assembly” is the location we have to look for custom assemblies that are developed for SharePoint 2013 and deployed in GAC. In the said path, there are 3 folder named, “GAC_32”, “GAC_64” and “GAC_MSIL”. As the name suggests, 32 bit dlls are deployed into GAC_32 folder and 64 bit dlls are deployed into GAC_64 folder and the dlls that are built with “Any CPU” mode are deployed into “GAC_MSIL”
The usual drag and drop into GAC folder does not work out for .net 4.0 and above assemblies. Assemblies has to be deployed through gacutil.exe which comes along with .net 4.0 framework. If you are copy pasting gacutil of .net 4.0 to a custom location for deployment, ensure that you also have gacutlrc.dll copied to that custom location.
Note: Check out this post to physically locate assemblies in GAC that are built on versions prior to 4.0