Multiple Microsoft Visual C++ 2005 Redistributable Installations

G

Guest

I have a Vista Ultimate OS, and Windows Installation Cleanup Utility shows
two versions installed: v8.0.50727.42 and v8.0.56336. Do I need to remove
one of these and if so, which one? OR, do I need to remove both and install
version v8.0.50727.762 (the SP1 version)? I've been having problems with
Microsoft Visual C++ runtime errors. Any help would be appreciated.
 
A

Andrew McLaren

Jim said:
I have a Vista Ultimate OS, and Windows Installation Cleanup Utility shows
two versions installed: v8.0.50727.42 and v8.0.56336. Do I need to remove
one of these and if so, which one? OR, do I need to remove both and
install
version v8.0.50727.762 (the SP1 version)? I've been having problems with
Microsoft Visual C++ runtime errors. Any help would be appreciated.

Hi Jim,

In theory, you can have as many versions of the C++ Runtime installed as you
want, or need. The runtime files get installed in the "Side-by-Side" cache,
C:\Windows\winsxs. Each version gets its own unique directory. So for
example, you could have 2 or more versions of msvcr80.dll, one installed in:

C:\Windows\winsxs\x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.42_none_db5f52fb98cb24ad

and the other in:

C:\Windows\winsxs\x86_microsoft.vc80.crt_14d7a2d4c3f54a2b_8.0.56336_none_db6d3dc5a3d168c

Applications built with Visual C++ typically have a "manifest" which tells
the application what specific side-by-side DLL versions are acceptable. So
when App1 goes to load msvcr80.dll, it will look in the first directory, for
the version of msvcr80.dll it likes best. App 2 may look in the second
directory instead, to find a specific version of msvcr80.dll it likes. If
the app does not request a specific version, the Side-by-Side cache manager
will load the "best" DLL, according to some internal algorithm. If an
application mandates a specific version of a DLL in its manifest, and that
version is not present on the system, then you will get an error, even
though there may be several other versions of the DLL on the system.

This mechanism is designed to get past the problem of "DLL Hell" (belive it
or not :).

The exact list of runtine versions you need depends on what applications you
have installed, and what Runtime DLL versions they are mandating (if any).
But apart from a small amount of disk space (these are not big files)
there's not much overhead in having several versions of the Runtime
installed. So you don't need to aggressively trim the list.

There were some problems installing some versions of the VC++ Runtime on
Vista, because the Installer package did not seem to understand UAC
correctly. The Write permissions in the winsxs directory are fairly tightly
controlled and some files didn't get written - I seem to recall ATL80.DLL
was particularly affected by this. So that may be the source of the errors
you're getting?
 
G

Guest

Andrew,
I found 9 entries in C:\windows\winsxs. 4 are duplicates of the basic 5
versions. I assume that this is Ok from your previous answer.
Interestingly, none of the versions shown is 8.0.56336 that is shown as
installed in the Windows Install Clean Up Utility?
 
A

Andrew McLaren

Jim said:
I found 9 entries in C:\windows\winsxs. 4 are duplicates of the basic 5
versions. I assume that this is Ok from your previous answer.

Yep ... generally, I'd err on the side of leaving the SxS cache well alone.
Interestingly, none of the versions shown is 8.0.56336 that is shown as
installed in the Windows Install Clean Up Utility?

Bit strange, but they're 2 different things:

- Install Cleanup utility is looking at the entries for installed products,
in the Registry and the %windir%\Installer subdirectory.

- Entries can be put into the C:\Windows\winsxs SxS cache either explicitly,
by running a Setup program (eg VC Runtime); or by some more implicit
manner - as part of another application's installation routine, or the like.
So you could easy end up with SxS entries that don't show in Add/Remove
Programs.

It's a bit anomalous that Installer cleanup shows 8.0.56336 but it doesn't
appear in the SxS cache. But I wouldn't worry too much ... I'd probably
elect to delete the Installer entry, but I'm not sure there's a really
strong motivation either way.
 
G

Guest

I think that i'm going to delete yhe v8.0.56386 using the Clean Up Utility so
that installation programs don't think that 8.0.56386 is already installed.
 
A

Andrew McLaren

Jim said:
I think that i'm going to delete yhe v8.0.56386 using the Clean Up Utility
so
that installation programs don't think that 8.0.56386 is already
installed.


Yep, sounds good to me.

Cheers,
 

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