Close this search box.

Windows Explorer and the Global Assembly Cache (GAC)

As you probably know shared assemblies are stored in the global assembly cache (GAC) which is located at c:\windows\assembly.If you navigate to this folder you might be surprised to see that is looks a lil different then you might expect. 

What you actually see in the windows explorer is an aggregated view of different folders. Open up a dos prompt and navigate to c:\windows\assembly

Technically a shell namespace extension is used to achive this. With the help of a shell namespace extensions you can create some custom functionality for Windows Explorer. One common use is to enable Explorer to present a list of items that do not exist in one real folder, but actually reside in a number of places. The view on the folder makes it look like these items are in one place, so managing them becomes easier.

The shfusion.dll is used to provide the user interface you see in explorer. If you disable the namespace extensions explorer is using the default extension to display the content of the gac.

Three ways to disable the namespace extension:

1. Rename the Desktop.ini

What you can’t see from the screenshot above is that there is a hidden file called Desktop.ini which is invoking the namespace extension.
You could rename the file with the following commands:

attrib desktop.ini -h -r -s
rename desktop.ini desktop.ini.bak

2. Add DisableCacheViewer Registry Key

Another way to disable to create a new dword key under HKLM\Software\Microsoft\Fusion\ with the nane DisableCacheViewer and set it’s [DWORD] value to 1.

3. Rename the Shfusion.dll

Last but not least you could rename the Shfusion.dll which is located in the %windir%\Microsoft.NET\Framework\vx.x.xxxx folder, where xxxx is the build number of the .NET Framework you are using.

Plain old explorer view

If you open windows explorer after one of the above procedures you will see your familiar folder structure.

 Once you disabled the namespace extension you no longer have drag and drop support for installing assemblies to the gac. Thus you probably want to re-enable the namespace extension once you have looked around.

This article is part of the GWB Archives. Original Author: Hannes Pavelka

Related Posts