Friday, March 14, 2008
GAC Browser blogs separated
Monday, March 03, 2008
GAC Browser – An Introduction
Problem: When you are dealing (installation, un-installation, development or support) with huge software with multiple assemblies installed in Global Assembly Cache (GAC), you will have a glance of “hell” while searching the assemblies through in-build assembly viewer on windows explorer. You will be introduced to full feature hell when you get into problem of uninstalling a traced referenced assembly which is not directly possible by popular ‘gacutil’ command. And, you will be deep into hell on occasion of accidental removal of an assembly without any backup. Surprisingly, Microsoft doesn’t seem to care about these features even when the world is in verge of hailing 5rd major release of .NET
Scope of the software: I felt a need of software to ease/eliminate above problem. Objective and vision of the software is to deal with GACed assembly completely for GAC search, software un-installation, development and support purpose.
Features: GAC Browser is powerful tool to search and remove assembly. It is must have tool for anyone dealing with assemblies in GAC. On an average, if you have visual studio 2005 installed on your PC, you may see more than 1000 assemblies on you PC. There is no good way of searching assembly in you GAC unless you have GAC Browser with you. Also, visibility in GAC is increased with more info like when it was last GACed. Double click any assembly to de-assemble the assembly in ILDASM. All in one! That’s why I said it a “must have”!
At the time, when this is written, GACBrowser supports,
·
· View All Assemblies form GAC.
· Search assemblies based from part of assembly name or public key.
· Sort the searched list based on any assembly attribute.
· Select one or more assemblies and remove them. Application can remove assemblies which is installed by any installer.
· Refresh search assemblies.
· Double Click on row to open assembly in IL Disassembler (ildasm). See picture given below to know where to clik..Note that you have to set proper $path environment variable so that "ildasm" can work.
How to get it? You are advised to download and install MSI for x86 CPU architecture from here: http://sourceforge.net/project/showfiles.php?group_id=214315
Wednesday, February 13, 2008
.NET Assembly uninstall problem
Have you ever encountered this error when you try to uninstall a .NET assembly?
Unable to uninstall: assembly is required by one or more applications Pending references:
Most probably yes!
Cause:
It is because that assembly is installed by an installer (anyone.. including standard .net MSI) . Installer specifies a traced reference count on the assembly being installed so when you try to delete assembly using GACUTIL, you get above error. I couldn’t uninstall some assembly while I was manually uninstalling a software.
Work Around:Method 1:
Use GACBrowser software to remove such assembly (uses 3rd approach specified below). It’s Easy, search and select assembly to remove. And removed!!
Download from here: http://sourceforge.net/project/showfiles.php?group_id=214315
GAC Browser is powerful tool to search and remove assembly. It is must have tool for any developer dealing with assemblies. On an average, if you have visual studio 2005 installed on your PC, you may see more than 1000 assemblies on you PC. There is no good way of searching assembly in you GAC unless you have GAC Browser with you. Also visibility in GAC is increased with more info like when it was last GACed. Double click any assembly to de-assemble the assembly in ILDASM. All in one! That’s why I said it a “must have”!
Method 2:
Windows maintains trace reference count in registry at two places.
[HKCU\Software\Microsoft\Installer\Assemblies\Global]
[HKLM\SOFTWARE\Classes\Installer\Assemblies\Global]
So you may want to go to this registry and remove the entry of the assembly that you want to uninstall. Use GACUTIL to remove assembly from GAC.
Method 3:
Go to Assembly folder using command prompt.
1. Open CMD
2. Go to assembly directory (for most of us: C:\Windows\assembly), If you type ‘DIR’, you may find different folders (important are: GAC, GAC_MSIL, GAC_32)
3. Search your assembly folder from this folder, go to appropriate version folder and remove the folder.
Conclusion:
You may want to have GAC Browser software as well has use method 2 for clean operation. GAC browser is soon coming up with in build method 2.