How to remove a specific version of a runtime DLL from Vista

F

Fritz

Hi,
I have two versions of MFC80U.dll installed on one my Vista systems (via
Windows side-by-side/winsxs). I'm trying to install a piece of software and
the installer stops responding complaining about MFC80U.dll. Upon further
inverstigation I can see that the system has two different versions of that
DLL installed in C:\Windows\winsxs and a wrong version of it is being used
when I run the installer. I have another Vista system with only one version
of the DLL and the installer works fine on it. My question is: how do I
remove the newer version of the DLL from the malfunctioning system or
redirect the installer to use the older version? I tried deleting the
folder with the newer version in c:\windows\winsxs but it gave me a message
saying that I don't have the right permissions even though I took ownership
of the entire folder and its contents. I also tried "cd'ing" into the
directory from the command line and running "regsvr32 /u" but the DLL failed
to unregister? Any ideas?

Thanks! :D
 
C

Carey Frisch [MVP]

Windows Installer 4.5 is available:
http://support.microsoft.com/kb/942288/en-us

--
Carey Frisch
Microsoft MVP
Windows Desktop Experience -
Windows Vista Enthusiast

---------------------------------------------------------------

Hi,
I have two versions of MFC80U.dll installed on one my Vista systems (via
Windows side-by-side/winsxs). I'm trying to install a piece of software and
the installer stops responding complaining about MFC80U.dll. Upon further
inverstigation I can see that the system has two different versions of that
DLL installed in C:\Windows\winsxs and a wrong version of it is being used
when I run the installer. I have another Vista system with only one version
of the DLL and the installer works fine on it. My question is: how do I
remove the newer version of the DLL from the malfunctioning system or
redirect the installer to use the older version? I tried deleting the
folder with the newer version in c:\windows\winsxs but it gave me a message
saying that I don't have the right permissions even though I took ownership
of the entire folder and its contents. I also tried "cd'ing" into the
directory from the command line and running "regsvr32 /u" but the DLL failed
to unregister? Any ideas?

Thanks! :D
 
F

Fritz

Carey,
Thanks but I'm not sure how your reply relates to my question. I already
have "Windows ® Installer. V 4.5.6001.22162" installed. What I need to know
is how to remove a specific version of a DLL from the Windows Side-by-Side
folder (%windidr%\winsxs).

J.
 
S

Synapse Syndrome

Fritz said:
Carey,
Thanks but I'm not sure how your reply relates to my question. I already
have "Windows Installer. V 4.5.6001.22162" installed. What I need to
know is how to remove a specific version of a DLL from the Windows
Side-by-Side folder (%windidr%\winsxs).

I wouldn't take any notice of Carey - he's a clown and techno-retard!

I [quite satisfyingly] solved a problem on my dad's laptop this morning that
was coincidentally much like this one. There was an svchost.exe process
maxing out the CPU, making the laptop very slow to use. Using Process
Explorer I found that it was a wuaueng.dll thread that was causing it.
There were two different versions of wuaueng.dll on the system. After doing
a bit of Google research I found I had to stop the wuauserv service before I
could delete the containing folder for the older file (which, strangely, had
a more recent version number).

Find out what has a handle on your MFC80U.dll file. Unless you have Process
Explorer already in a folder added to your PATH, from an elevated command
line type:

\\live.sysinternals.com\tools\procexp.exe

Then in Process Explorer > Find menu > Find handle or .dll > type MFC80U.dll

See what service(s) that the process that is using your .dll is using.

I do not have Vista to hand, so I cannot check myself. MFC80U.dll is only
being used by a NOD32 process on my XP laptop here. Google searching
suggests a couple of likely services (one of which was the same in my
problem).

net stop wuauserv

net stop cryptsvc

del %windir%\winsxs\MFC80U.dll (or wherever it is)

net start wuauserv

net start cryptsvc

ss.
 
S

Synapse Syndrome

Synapse Syndrome said:
Find out what has a handle on your MFC80U.dll file. Unless you have
Process Explorer already in a folder added to your PATH, from an elevated
command line type:

\\live.sysinternals.com\tools\procexp.exe

Hmm, I just tested that, and it is not working. There must be something up
with the site.

Just try http://live.sysinternals.com/procexp.exe if they haven't sorted it
out by the time you read this. Select Run.

ss.
 
F

Fritz

Thanks for the response.
So you're basically saying that it's okay to delete subfolders in the
Windows Side-by-Side folder (winsxs) if I was to lets say boot WinPE from a
CD (so that nothing has a handle on the files in it)?



Synapse Syndrome said:
Fritz said:
Carey,
Thanks but I'm not sure how your reply relates to my question. I already
have "Windows Installer. V 4.5.6001.22162" installed. What I need to
know is how to remove a specific version of a DLL from the Windows
Side-by-Side folder (%windidr%\winsxs).

I wouldn't take any notice of Carey - he's a clown and techno-retard!

I [quite satisfyingly] solved a problem on my dad's laptop this morning
that was coincidentally much like this one. There was an svchost.exe
process maxing out the CPU, making the laptop very slow to use. Using
Process Explorer I found that it was a wuaueng.dll thread that was causing
it. There were two different versions of wuaueng.dll on the system. After
doing a bit of Google research I found I had to stop the wuauserv service
before I could delete the containing folder for the older file (which,
strangely, had a more recent version number).

Find out what has a handle on your MFC80U.dll file. Unless you have
Process Explorer already in a folder added to your PATH, from an elevated
command line type:

\\live.sysinternals.com\tools\procexp.exe

Then in Process Explorer > Find menu > Find handle or .dll > type
MFC80U.dll

See what service(s) that the process that is using your .dll is using.

I do not have Vista to hand, so I cannot check myself. MFC80U.dll is only
being used by a NOD32 process on my XP laptop here. Google searching
suggests a couple of likely services (one of which was the same in my
problem).

net stop wuauserv

net stop cryptsvc

del %windir%\winsxs\MFC80U.dll (or wherever it is)

net start wuauserv

net start cryptsvc

ss.
 
S

Synapse Syndrome

Fritz said:
Thanks for the response.
So you're basically saying that it's okay to delete subfolders in the
Windows Side-by-Side folder (winsxs) if I was to lets say boot WinPE from
a CD (so that nothing has a handle on the files in it)?

No. I thought you thought that having two versions of MFC80U.dll was
causing your problem, so I would try just deleting the one that is causing
it.

Didn't you investigate using the process I describe help? Didn't stopping
the services and processes that had a handle on the .dll enable you to
delete it?

If you want to try deleting it by booting into another OS like WinPE, that
would be another way, but make an image of your OS drive with True Image or
Ghost beforehand in case it causes further problems.

ss.
 
F

Fritz

Thank you but I think we have a misunderstanding here. My question is
specifically about the Side-by-Side feature of Windows Vista. There is a
folder called "winsxs" in %windir% that holds multiple instances of
different runtimes. I need to remove the version of the VC runtime that's
causing the problem in a graceful manner without affecting the stability of
the system.

Thanks!
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top