Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Every time I install a game, or even OpenOffice, part of the installation routine is installing yet another Visual C++ 2005/2008 redistributable, right next to the 10 others I already have on my system.

Why are so many different versions (of what feels like the same thing) necessary?

share|improve this question
    
I didn't install OpenOffice on Windows lately, but AFAIK OO.org pure Java. That's disturbing! –  lajuette Aug 8 '10 at 18:46
2  
OO.org is actually mostly C++ with some Java components ( source ). –  heavyd Aug 8 '10 at 19:14
    
this is not uncommon. I wish there was a way to visually roll them up in add/remove programs so you dont have to see them all. –  Keltari Jul 31 '13 at 15:27

3 Answers 3

up vote 9 down vote accepted

Visual C++ redistributables are components shipped by app developers who use Visual C++ to write their software. By using Microsoft's well-tested and widely used code inside their apps, developers save their development cost by avoid writing commonly-used code (e.g. sin and cos math functions and handling of common user interface elements like textbox or button). Due to fragmentation in the runtime versions used by the app developers, you would see a long list of Visual C++ redistributables if you install a lot of apps. Uninstalling one Visual C++ redistributable could save you a few megabytes of disk space, but you risk breaking some apps in doing so.

Because programmers rely on Microsoft to keep the Visual C++ runtime up to date, Microsoft releases security update for the redistributables, but due to programmer demands, Visual C++ redistributables do not supersede each other and old versions are kept for compatibility. Some apps are very specific about the version of the Visual C++ dlls they require to make sure the app runs exactly as published. Their authors hold on updating to the latest runtime until they tested their app's compatibility with the new runtime. It is one way to prevent a few thousands calls from angry customers after Microsoft releases an update to the redistributable. Most apps, however, bind to the latest edition of the same major version, as it is the default behavior and the benefit from immediate and effortless security updates outweighs risks in breaking changes delivered by redistributable updates.

Microsoft also has to support a lot of Visual C++ runtimes because it has no idea which one the app developer would choose. Multiple versions of Visual C++ redistributables can be required even within the same app, for example, if an app depending on Visual C++ 2008 redistributable uses a component depending on Visual C++ 2005 redistributable, the app's developer must ship both versions of Visual C++ redistributables. On a 64 bit computer, the system could have both x86 and x64 editions of Visual C++ Redistributables installed, since Visual C++ redistributable is a common used component, and it is normal to have both 32bit apps and 64 bit apps (or even apps that contains both 32 bit code and 64 bit code) installed on a 64 bit system.

You can probably find the app installing a redistributable by looking for an app with the same install date as the redistributable, but there is no telling how many other apps with a later install date are depending on the same redistributable. The amount of time you spend on finding the exact dependency would most likely not worth the few megabytes you may save by uninstalling the redistributables.

share|improve this answer
    
This is a very good answer. Developers also target specific versions. A function in Release A is not guaranteed to work the same way in Release B. Of course in reality the basic will remain the same between the releases its the new features Feature C that exist in Release B and later and Feature C that exists only in Release C is the real problem developers face. So they distrubute the version they used and compile their software to only use that version. In this specific case multiple date releases of the C++ Redistributables are possible of the same version ( i.e. Feb, March, April 2005 ). –  Ramhound Jul 31 '13 at 15:43

The reason is that they are not same thing. First you need to understand that every version of MSVC++ ships with its own version of runtime libraries. There are also 32 and 64 bit versions. Also, there are service packs bring updated versions of runtime libraries.

If you do have 10 installations, can you list their names? I don't think that you should have more than 4 (32 and 64 bit for 2005 and same for 2008). Service packs should replace unupdated versions.

share|improve this answer
1  
I believe this is correct - there are only 4 that I am aware of and the improvement here is that they can now be installed side-by-side. The required build depends on if the application was complied to statically or dynamically link to the runtime used in compiling the application. These can coexist peacefully and are relatively small. –  jtreser Aug 8 '10 at 13:27
    
+2 more for VS2010! But still if OP has 10, that's too much. –  AndrejaKo Aug 8 '10 at 15:47
    
Well, admittedly, I haven't counted them. On my machine at work I have two (2008 32bit and 64bit, both 9.0.something). I'll count them at home, too. –  Tomalak Aug 9 '10 at 12:54
2  
I have 12 listed. 2005 (2) (no specification or version listed) 2008 (8) x32/x64 9.0.21022, 9.0.30729.17, 9.0.30729.4148, 9.0.30729.6161 2010 (2) x32/x64 10.0.40219 –  Darren Hall Mar 19 '12 at 7:59
1  
@DarrenHall - Its normal to have that many. Each version is difference and you have applications that targeted those specific versions. –  Ramhound Jul 31 '13 at 15:46

There are many versions of the C++ redistributable files, unless you know precisely which program will use the file, remove even one a and every program that used it will disable permanently unless re-installed.

Those who have many programs installed will have many versions of them. Microsoft allows it to be redistributed, so rather than invent new code each time, a developer can just pop one of those in for you.

They are tiny and not big enough to worry about. Many of them are only KB, a few are MB, and better than programs that are a GB.

I know it is aggrivating to see many of them there (I have 21 of them), but leave them alone, your programs will shut down if you remove them. It would also be nice if program developers also labeled them for the individual program, but if they did you would have hundreds more. Right now programs piggyback off them, which enables programs to use coding from both old and new.

I have a degree in computer netwroking. I wouldn't tell you anything to do to your computer that I wouldn't do to my own

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.