• Welcome to TechPowerUp Forums, Guest! Please check out our forum guidelines for info related to our community.
  • The forums have been upgraded with support for dark mode. By default it will follow the setting on your system/browser. You may override it by scrolling to the end of the page and clicking the gears icon.

do i need 5 different versions of the microsoft visual C++ redistributable ?????????????

Joined
Mar 27, 2007
Messages
2,817 (0.42/day)
Location
louisiana
Processor Intel Core i5-12400F - Core i5 12th Gen Alder Lake 6-Core 2.5 GHz LGA 1700 65W
Motherboard GIGABYTE B760M--DS3H LGA 1700 DDR4
Cooling CPU - Thermalright Assassin King 120 SE / Case - cooler master 120mm rear case fan (Air cooling)
Memory CORSAIR Vengeance LPX 32GB (2 x 16GB) 288-Pin PC RAM DDR4 3200 (PC4 25600)
Video Card(s) GTX1060 6GB
Storage Samsung 1 TB 870 EVO SSD Main Drive / Samsung 500 GB 870 EVO SSD Backup Drive
Display(s) ASUS 23" LED Monitor
Case COOLER MASTER Centurion 5 (silver & black)
Power Supply CORSAIR RM-750X 750W Modular ATX
Software Windows 11 Pro 64bit Edition
i have a bunch of games from 2000-2010 that have installers that install the current redistributable (x64) and redistributable (x86) versions for the years they came out,

so i have 2005, 2008, 2010, 2012, and the latest 2015-2022 version. so thats 10 installs for the 5 different year versions i have of it on my computer

i assume i need them all, but i have no idea if thats true, so my question is, why are there so many versions,

and do i really need them all, or does the 2015-2022 version, already include the older versions?

the reason i ask is, i want to skip the whole install process and make a 250GB SSD with all my installed games, so its faster to do reinstalls or add them to my other computers

but when doing so, i am concerned they might be missing something they need from an old version of microsoft visual C++ redistributable

also, what about other things like directX ? some of my games need it, so just to be safe, i always install it, but do i really need to or does windows now have all that?
 
Every time I *only* install the latest/redist inclu. w/ apps/games, I eventually stumble into a missing version for some old game, etc.
So, I also assume all installable versions must be installed.

Typically on a new install, I'll use TPU's downloads for VC++ and DX.


Then, I'll go and find a .NET framework AIO.
 
If the game required you to install a particular version then you need that particular version and the newer version can't be used instead of the old one. Chances are nothing uses 2005 x64 so you could probably skip that one and same for 2015 x86. Even if the new version has everything the old version has an application compiled against the old one can't use the new one.
 
There is no escape.

One or two versions might be removable because an update to the requiring app originally installed them but is now requiring a newer one. But that's hard to track down. It's not that you can use `ldd` like in Linux to tell which app needs what. It's all installer magic.
 
so my question is, why are there so many versions,

The problem (not sure "problem" is the right word), is each new version is not really an upgrade to the previous version. Each new version provides new code "libraries" new software calls upon. Not all programs use the same libraries, this is why you have multiple versions installed.

You might think of each new version as you might think of an annual "addendum" to a set of reference books containing data on a wide variety of topics. The annual addendum simply adds new information. It does not replace the old. So you can't throw out all the previous books.

The only way you can cull out those you don't need is by starting all over with a fresh install of the OS, then your programs. But note this would only be effective if you, sometime between the initial OS install and now, you installed a new program and its associated set of libraries, then uninstalled that program at a later date, and no other installed program needs those libraries. I would guess that is not likely, or at least not really worth the effort.

The good news is, they really don't consume much space. Most are well under 20MB. So even if you had 10 Microsoft Visual C++ Redistributable packages installed, they all combined would still only consume less than 200MB of disk space.
 
so my question is, why are there so many versions,

and do i really need them all, or does the 2015-2022 version, already include the older versions?
Prior to MSVC 14 (2015), Microsoft didn't design its platform for inter-generational compatibility. The runtime for 2008 "doesn't guarantee" that -for example- a program compiled with visual studio 2005 calling a specific function from the 2008 libraries will get the same result (or any "result"). So the OS is designed in a way it only matches executable to libraries with a specific - major - version number. And it will throw a fit error if no library with that version was installed. One way to mitigate [the more problematic parts of] dll hell. The result is that if you have programs compiled with VS 2005, 2008, 2010, 2012, and 2013 installed, you'll need the runtime for each seperately.

Starting from MSVC 14, MS decided to have each successive version be backwards compatible. So you can run a programs developed on Visual Studio 2015 (MSVC 14), through 2022 (MSVC 17) using the runtime (redistributable) that is released with 2022 (runtime version 14.40. aka VC redist 2022). I think MS has started to only offer the download for the latest version, these days...

the reason i ask is, i want to skip the whole install process and make a 250GB SSD with all my installed games, so its faster to do reinstalls or add them to my other computers
Typically, games do come with a "Redist" directory or somesuch containing the stuff they need to run. If you're going for an image-esque approach, you can simply query (read: go into the directory of each game and check the aforementioned directory) the dependencies for each, copy them into some special directory in your drive, then start with it when you reinstall you OS. Depending on your games. Could be that you'd have to run a handful of installers, could be all of them.

If your games are using Steam, the launcher maintains its own package of common redists (evident in its name: Steam Common Redistributables). Steam itself runs the required installers at the first launch of the game in the system. Even if the game was downloaded in another computer and copied to the new one (or on a newly added drive).
 
There is no escape.

One or two versions might be removable because an update to the requiring app originally installed them but is now requiring a newer one. But that's hard to track down.
This is a perfect example of why our systems become so bloated with crapware, backdoors, viruses, spywarez, and other assorted garbage, in addition to app developers not being required to develop to any particular standard set of libraries/DLL's/API calls ect... as well as people wanting to keep everything forever....

Just another reason to be extremely diligent about keeping your system lean & clean as possible, and get rid of old & unused stuff on a regular basis :D

I've had certain clients ask me "why is my rig so slow & freezing/crashing all the time ? Then I go look at their computer and find sooooo much crap left over from 2005, 2010, 2015....gee, imagine that.....

I even had 1 who had almost 2K app shortcuts & document/file icons on his desktop (thankfully he has a 49" widescreen @high res), & he wondered why he couldn't find stuff when he needed it. It took me better part of a day to figure out what was antique/outdated/irrelevant crap, old but maybe still useful crap, new-ish crap, & what he actually needed to keep !
 
This is a perfect example of why our systems become so bloated with crapware, backdoors, viruses, spywarez, and other assorted garbage
No its not. Sorry, but you really don't understand how these work.

None of these libraries could be considered as "crapware, backdoors, viruses, spywarez, and other assorted garbage". They are needed libraries. And they are legit and NOT malicious.

In fact, they help avoid bloat because dozens and dozens (or more) different programs can call on just a small number of libraries. Without these libraries, each program would have to include the code these libraries contain. That would add massively to the amount of disk space consumed by our programs.

in addition to app developers not being required to develop to any particular standard set of libraries/DLL's/API calls ect...
Nonsense!!!

Required by who? Intel? AMD? The government? The Linux foundation? No! No! and No!

Microsoft? Yeah right! Microsoft haters are already yelling and screaming and whining and crying over how Microsoft is requires this and that. Can you imagine all the complaints if they required every program developer to write to a specific library?
 
app developers not being required to develop to any particular standard set of libraries/DLL's/API calls ect.
The msvc runtime is a standard set of libraries.

Ironically, the mix of standards and prioritization of backwards compatibility *can* lead bloated and potentially dangerous software, and eventually forcing developers to migrate away from those standards. See, for relevant example, C++ folk rants about ABI breakage.

For the system-wide bloat part, dlls are only loaded when used. Having two dozen libs from 2005 shouldn't, by itself, slow down your computer. As Bill stated above, worst you'd suffer is a few MB's of extra disk storage.
 
None of these libraries could be considered as "crapware, backdoors, viruses, spywarez, and other assorted garbage". They are needed libraries. And they are legit and NOT malicious.

There is zero chance that the old VC++ libraries do not contain security issues that have long been fixed in the new ones.
 
For games, c++ AiO (git), DirectX 2006, OpenAL, PhysX legacy & last, XNA.

That's ALL, NetCore if mods/apps need it too.
 
Last edited:
Yes, you need the DirectX 9 runtime, XNA, OpenAL and all versions of the C++ runtime and .NET Framework/.NET Desktop Runtime installed for maximum compatibility.

There is zero chance that the old VC++ libraries do not contain security issues that have long been fixed in the new ones.

However, there is also zero chance that applications that need said libraries run without these DLLs. The runtime by itself is completely inert. It cannot be abused unless malware is already running on your PC and by that point, any potential vulnerabilities that they themselves contain are moot.
 
However, there is also zero chance that applications that need said libraries run without these DLLs. The runtime by itself is completely inert. It cannot be abused unless malware is already running on your PC and by that point, any potential vulnerabilities that they themselves contain are moot.

The point is that unpatched libraries with security problems turn programs that don't have security holes on their own into combined applications that do.
 
There is zero chance that the old VC++ libraries do not contain security issues that have long been fixed in the new ones.
Dude, the language itself is a security issue! :roll:
</s>

Seriously tho, Microsoft does patch the older packages, at least for major vulnerabilities. And if I remember correctly, these patches are pushed through Windows Update (it is a Microsoft product, after all).
 
The answer is the same as that to the question "did you need 13 question marks in the thread title"?
 
There is zero chance that the old VC++ libraries do not contain security issues that have long been fixed in the new ones.
More nonsense! You too have just demonstrated you do NOT understand how these libraries work.

Come on dude! Use just a tiny bit of common sense here, okay? Microsoft does not just release a set of libraries, then wash their hands of them and instantly declare them end of life and drop all support. Get real!

Also, as I and others above have noted, new versions do NOT replace old versions. They add new libraries. They do NOT "update" or patch the old libraries.

Seriously tho, Microsoft does patch the older packages
Yes, of course they do. So Shihab is absolutely correct. For ALL their software that has not been deprecated or declared as "end of life", they provide patches and updates for those programs and files.

The answer is the same as that to the question "did you need 13 question marks in the thread title"?
LOL

Actually, the answer is the opposite. No, you don't need 13 question marks. However, yes, you do need all those Visual C++ Redistributable packages!!!!!!!!!!!!!! :rolleyes: :toast:
 
> do i need 5 different versions of the microsoft visual C++ redistributable ?

Yes, you do. Each one targets a specific version of Microsoft's C++ compiler. The library versions are not backwards/forwards compatible

I'll use TPU's downloads for VC++
+1 for that :)

a .NET framework AIO.
Maybe that is something that I could add to our downloads?
 
The point is that unpatched libraries with security problems turn programs that don't have security holes on their own into combined applications that do.

My initial point remains. The way I see it, the runtime itself could very well be considered a part of the program - on its own, it is inert, but the program requires it, ergo, every program that makes use of said runtime is potentially vulnerable. Which is why security-minded applications should, at least in theory, target the latest versions of said runtimes.

Windows 11 with its default settings is very secure. It even goes a few steps into trading both performance and usability for security, which is unacceptable to me as a power user but, in hindsight, actually beneficial to the garden variety idiot that operates a Windows system. No matter, as long as Microsoft allows me to modify settings to suit my needs, I am okay with it
 
Maybe W1z's installer could do vcc, DX, xna, and openAL all in one as a kind of gamer services installer?
 
If you want to avoid dependency headaches then yes. Its a mess, .NET framework is going the same way as well e.g. some apps using 4.8, some 5.x, some 6.x and so on.

As to why developers feel the need to keep doing frequent rewrites instead of doing incremental updates to one main version I would love to know. In a decade one might need 10 builds of C++ and 20 builds of .NET.

But yeah I auto install them all on my Windows ISO.
 
At least it's nice that they have offline installers. When I set up a retro PC which is 100% offline only, it's nice that these required runtime redists are easily downloadable and transferable via a thumb drive.
 
As to why developers feel the need to keep doing frequent rewrites instead of doing incremental updates to one main version I would love to know.
It's not a rewrite, per se.
Literally just adding a single keyword to the code could render the new library incompatible with the the old one. A dev would have to go out of their way to avoid incompatibility. and this adds limitations to what they can add, fix, or improve (again, I refer to the C++ ABI debate).
 
could very well be considered a part of the program
That is an option, to compile the runtimes into the program. GPU-Z does that, but the drawback is that updates for security issues in the runtime have to be part of the app's regular release process and can't be "sideloaded"
 
Back
Top