Thursday, December 14, 2006

How To Fix A Missing DLL

How to fix an AWOL Shell.dll

Reader Rick Granlund has a problem that's bad enough in itself, but which also could be a symptom of a deeper issue. Either way, it's fixable:

* "I have a problem that may be common and yet the cure eludes me. When I attempt to install software in my XP Pro SP2 machine, I get the dialog box 'Missing SHELL.DLL.' How do I find and reinstall the SHELL.DLL with minimum disruption to my system?"

The fix is easy, Rick, but first — it'd be best if you could find out why Shell.dll disappeared.

For example, there's a fairly common browser hijacker that can cause this problem. You didn't mention any other symptoms, but the hijacker usually adds "Home Search Assistant," "Shopping Wizard," and "Search Extender" to your system, and may also reset your browser's home page so that a popup appears at every start.

If malware such as this is working on your system, then it will do no good to repair Shell.dll because the malware will simply corrupt the new copy.

I suggest you begin by using your favorite antimalware tools to make sure your system is squeaky clean and free of all malware. Major test labs currently rate Webroot's Spy Sweeper and PC Tools' Spyware Doctor as the best antispyware products. For more information, see the Security Baseline page at WindowsSecrets.com.

If "Home Search Assistance" and its related friends are, in fact, causing your problem, the free AboutBuster utility can remove them.

Once you're sure your system is clean, you can download a fresh copy of Shell.dll from any number of online sources. DLL-files.com, for example, has a good Shell.dll page. Copy the DLL file into your DLLcache folder (usually found at C:\Windows\System32\DLLcache). Then re-register the DLL this way:

Step 1. Click Start, Run.

Step 2. In the Run dialog box, enter (change C:\Windows to the correct location on your system):

regsvr32 C:\Windows\System32\DLLcache\Shell.dll

Step 3. Click OK.

Step 4. Reboot, and your Shell.dll problems should be fixed!

By the way, the above steps can resolve a huge number of problems with other missing/corrupted DLLs. Just use the example above as a template, downloading whatever DLL you need and substituting its name in the regsvr32 command.