Amit's profileAll about BizTalk Server...PhotosBlogLists Tools Help

Blog


    December 14

    View GAC Folder Structure

    GAC in Microsoft .NET framework is implemented via Fusion.dll, which hides the actual structure of the GAC.

    To view the actual structure of GAC we have two methods

     

    • DOS Command Prompt

    1.      Start à  Runà cmd

    2.      Type cd\. This will bring you to the root directory

    3.      Type cd c:\WINDOWS\assembly\GAC

    4.      Type Dir

    5.      You will see the actual structure of GAC

     

    • Explorer view

    By default the explorer shows all assemblies. But to view the actual folder structure of GAC, we have to do some tweaks in registry.

     

    (Please ensure that you have a backup copy of the registry before starting this.)

     

    On a Windows 2003 OS

    1.      Start à Run à regedit

    2.      This will open Registry

    3.      Follow the structure

    4.      My Computer àHKEY_LOCAL_MACHINEàSOFTWAREàMicrosoftàFusion

    5.      Add new binary value name “DisableCacheViewer

    a.      Select Fusion

    b.      Click EditàNewàBinary Value

    c.      Change the name of the value to “DisableCacheViewer”

    d.      DisableCacheViewer àRight Click-->Modify

    e.      Enter 1 (Any non zero value will also do)

    6.      Open GAC

    a.      StartàRunà Type “c:\WINDOWS\assembly”

    b.      This will open the Explorer but now you will see the actuall structure of the GAC

     

    After making the above modifications to the registry, if you try to open GAC folder, you will now see the actual structure of GAC. For example, if you have deployed two versions of an assembly name Temperature, You can see a folder named Temperature in “C:\WINDOWS\assembly\GAC”

     

     

    If you open Temperature you will see two folders will both of your deployed version assemblies with strong name.

     

     

    These folders will then contain the actual assemblies.

    Deploying Assemblies to GAC

    When we are working with BizTalk artifacts, with each small change in Orchestration etc we have to deploy assemblies to GAC. This can become tedious some times. Here is a handy script which will definitely save time when installing assemblies to GAC.

    Check the following link from BIA group

    http://biztalkia.blogspot.com/2005/12/easier-way-to-add-dll-to-gac.html

    For .Net Framework 1.* as gacutil come with it.

    1.      Copy the following script to notepad and save as *.reg file

    Windows Registry Editor Version 5.00

    [HKEY_CLASSES_ROOT\dllfile\shell\gacutil\command]

    @="c:\\windows\\Microsoft.NET\\Framework\\v1.1.4322\\gacutil.exe /i \"%1\""

    2.      Double click to add the element to registry.

    For .Net Framework  2.0 as gacutil does not comes with it.

    1.      gacutil does not comes with .NET framework 2.0 as it is considered to be developer tool.

    2.      For that if you have VS2005 installed, look for it at the following location

    “C:\Program Files\Microsoft Visual Studio 8\SDK\V2.0\Bin\gacutil.exe”

    3.      For .NET 2.0 use this script file

    Windows Registry Editor Version 5.00

    [HKEY_CLASSES_ROOT\dllfile\shell\gacutil\command]

    @="C:\\Program Files\\Microsoft Visual Studio 8\\SDK\\V2.0\\Bin\\gacutil.exe /i \"%1\""

    After this you can install any strong named assembly to GAC with just a single right Click.