Microsoft ends Visual C++ Redistributable Chaos

Martin Brinkmann
Jun 23, 2019
Updated • Jun 23, 2019
Windows
|
45

Programs designed with Visual Studio may require a specific version of the Microsoft Visual C++ Redistributable to run. The requirement resulted in the installation of a large number of Visual C++ Redistributable packages on Windows PCs.

It is not uncommon to see multiple Microsoft Visual C++ Redistributables on a system that were installed by software programs, through updates, e.g. security updates, or manually by the system administrator.

Redistributables are stored in a central location so that any program installed on the system may access the files if required.  You can check out our detailed guide on Visual C++ Redistributables here for additional details.

Microsoft changed the system significantly with the release of the Microsoft Visual C++ Redistributable for Visual Studio 2015, 2017 and 2019. A baseline image is provided for these redistributable packages so that it is no longer necessary to install different versions separately on target systems.

In other words: if the Visual C++ 2019 redistributable is installed on a system, it is no longer necessary to install the Visual C++ 2015 or 2017 redistributable packages as these are supported automatically as well.

Microsoft provides the following example on the "The latest supported Visual C++ downloads" support page.

For example, installing the Visual C++ 2019 redistributable will affect programs built with Visual C++ 2015 and 2017 also. However, installing the Visual C++ 2015 redistributable will not replace the newer versions of the files installed by the Visual C++ 2017 and 2019 redistributables.

This is different from all previous Visual C++ versions, as they each had their own distinct runtime files, not shared with other versions.

A support article on Microsoft's Docs website provides further information:

From Visual Studio .NET through Visual Studio 2013, each major release of the C++ compiler and tools has included a new, standalone version of the Microsoft C Runtime (CRT) library. These standalone versions of the CRT were independent from, and to various degrees, incompatible with each other. For example, the CRT library used by Visual Studio 2012 was version 11, named msvcr110.dll, and the CRT used by Visual Studio 2013 was version 12, named msvcr120.dll. Beginning in Visual Studio 2015, this is no longer the case. Visual Studio 2015 and later versions of Visual Studio all use one Universal CRT.

The Universal CRT is a Microsoft Windows operating system component. It is included as part of the operating system in Windows 10 and is available for older operating systems, Windows Vista through Windows 8.1, by using Windows Update. In addition, local deployment of the Universal CRT is supported, with some restrictions.

Windows administrators may download the Universal C Runtime with a click on the following links:

Older Visual C++ Redistributable packages for Visual Studio still need to be downloaded and installed separately, or delivered as part of a program's installation process.

The Visual C++ All in One Installer is also useful when it comes to installing redistributable packages on Windows systems.

Closing Words

The Universal C Runtime is a step in the right direction. While it does not take care of older C++ Redistributable packages, it did so starting with the release of the Visual C++ 2015 Redistributable.

Now You: How many Redistributable packages are installed on your system? (via Born)

Summary
Microsoft ends Visual C++ Redistributable Chaos
Article Name
Microsoft ends Visual C++ Redistributable Chaos
Description
Microsoft switched to a Universal C Runtime format with the release of Visual Studio 2015 to reduce the administrative burden.
Author
Publisher
Ghacks Technology News
Logo
Advertisement

Tutorials & Tips


Previous Post: «
Next Post: «

Comments

  1. Romid said on August 5, 2020 at 9:18 am
    Reply

    Hello,

    I would like to know what is the latest version of VC++ 2017 redistributables (I am using the version v14.16.27027.1).

    My software is still compiled with VC++ 2017, can I use the 2019 redistributable?

    Also, starting with the VC++2015 is each version of redistributables in sync with an update of Visual Studio? Or it does not matter and there are multiple versions of redistributables for the same version of Visual Studio?

    1. Scott Kay said on September 15, 2020 at 1:30 am
      Reply

      It’s all included in the Universal C Runtime redistributable VC 2015-2019 are included (thus VC 2017). It’s really been a long time coming for this since it has always been painful over the years to provide the correct CRT redistributable or provide links to download it along with commercial software. The thing that still stinks now is that x86 and x64 are separate and sometimes software that leverages both x64 and x86 components get out of sync when another piece of software (typically x64) updates only that UCRT version and then there are mismatches between the x64 and x86 versions. But it’s better than it used to be.

  2. Brandy D Robnett said on May 16, 2020 at 10:31 pm
    Reply

    This I am sure is very clear to most but I would love someone to post what the list of installed looks like on their system, so I can be sure I know what should be and what I can remove. I am still learning things and trying to understand is much easier when I can see it.

  3. Anonymous said on April 27, 2020 at 4:27 am
    Reply

    I wonder if somebody can say very clearly:
    If I uninstall *all* previous versions, and then install *only* the latest one – is it enough then for *all* applications to run, including older apps?
    (Or any older distros have to still be installed?)

    1. catsmoke said on April 27, 2020 at 11:24 pm
      Reply

      >>If I uninstall *all* previous versions, and then install *only* the latest one – is it enough then for *all* applications to run, including older apps?

      If you are asking “If I install the 2019 redistributable, can I safely uninstall the 2008, 2012, and 2013 redistributables?” then the answer is No.

      What you can do, if you have both older and newer versions of a single redistributable (multiple versions of one particular year), is keep the newest version of that one particular year, and delete the older versions of that one particular year.

      To quote John G:
      >>[You need] the last version of each redistributable package of C++ per year.

      To quote Slaskfader:
      >>It’s enough to have just one version per “year”… The latest

      For example, in a previous post in this discussion, Ivan Lazerov listed the redistributables on his system. Here are the versions of Microsoft Visual C++ 2008 Redistributable (x64) he has installed:

      2008×64 v9.0.21022
      2008×64 v9.0.30729.17
      2008×64 v9.0.30729.4148
      2008×64 v9.0.30729.6161

      As long as he keeps the newest one installed (v9.0.30729.6161), he can uninstall the older ones (v9.0.21022; v9.0.30729.17; and v9.0.30729.4148).

  4. mgruber said on October 22, 2019 at 7:24 am
    Reply

    Exactly as it once worked on the good old Visual Studio 6.0 (1998). Then MS invented the manifest…

  5. ACL IT Academy said on July 15, 2019 at 1:12 pm
    Reply

    The Microsoft visual C++ Redistributable install run-time components that are required to run C++ applications. Wonderful article. Thanks for sharing.
    regards
    ACL IT Academy – C training Institute in Kolkata

  6. ormaaj said on July 7, 2019 at 3:19 am
    Reply

    Did they make a fundamental change to the linker to somehow allow parts of libraries (and the runtime) to have ABI-compatibility across multiple msvc versions? I think this is probabaly not that magical.

  7. Froyton said on June 28, 2019 at 4:39 pm
    Reply

    Am I the only one that views this as a non-issue? I could be missing something, but I don’t see the harm in having a bunch of these installed, aside from a slightly longer list of installed programs and a negligible number of MBs used up on my disk. In all the years and among the hundreds (thousands?) of workstations I’ve worked on, I was mildly inconvenienced exactly 1 time by the fact that there were multiple vcredistribs installed. I had to reinstall a vcredistrib to address a software issue and I wasn’t sure which version the program used, so I reinstalled all three of them. I don’t feel like this is the “hell” that people are making it out to be. I know I can’t speak for everybody, so I would be happy to hear a thoughtful rebuttal to this. I’m still going to posit that at least some of the people complaining are merely doing so because they will bash Microsoft over literally everything, big and small.

    1. John G. said on June 28, 2019 at 9:11 pm
      Reply

      The main problem: there is no way to get six major C++ updates through windows update system.

  8. Xileer Torias said on June 26, 2019 at 4:13 am
    Reply

    Currently Installed (Power User / Software Developer)
    C++ 2005 Redistributables: 5
    C++ 2008 Redistributables: 7
    C++ 2010 Redistributables: 2
    C++ 2012 Redistributables: 2
    C++ 2013 Redistributables: 2
    C++ 2017 Redistributables: 2
    Total: 20

    If I can replace this with 1, I’ll be more than happy ._.

    1. John G. said on June 27, 2019 at 7:28 am
      Reply

      Sorry, I forgot to make this question: where did you find all those minor versions of each C++? Microsoft only offers the last major version of each one, and they seem to be unavailable.

    2. John G. said on June 27, 2019 at 6:34 am
      Reply

      You don’t need to have the total 20 versions installed, only just the last version of each redistributable package of C++ per year. According to Microsoft they all have backward compatibility, so you need only six installed (or eleven if you have 64bit system).

  9. Gogi said on June 25, 2019 at 10:54 pm
    Reply

    Can MS explain, what they made in EVERY runtime so important and incompatible, that we need to install all this “C++ mess”? Objects are changed? OOP? Virtual table? I never believe there is no SINGLE solution for all C++ programs. Just question of qualification (of MS developers).

  10. cybernard said on June 25, 2019 at 12:21 am
    Reply

    This does nothing 90% of my versions are old than this.
    2008 had 5 versions of x86 and x64.

  11. mikef90000 said on June 24, 2019 at 8:39 pm
    Reply

    Good job, MS. Why can’t you even include a date / version number in the new filename?

    The developmentally disabled are complaining justifiably that MS is disrepecting the ‘retarded’.

  12. Steve Vreeland said on June 24, 2019 at 3:18 pm
    Reply

    “For example, installing the Visual C++ 2019 redistributable will affect programs built with Visual C++ 2015 and 2017 also.”
    I read that to mean: “Installing the latest CRT may screw your earlier programs and force all your customers to update to a newer version. (That’s how we make our money; msvs).”

    1. Ann said on June 24, 2019 at 5:08 pm
      Reply

      then I sugest you go back to school for a cource in comprehensive reading.
      * older installation are still valid, so no need to “force update your customers”
      * VC redistributable are free of charge, so no extra money comes out of this for M$ (write it like you can read it) so on the contrary the work they’ve done here did cost MS money and they have no direct return on it.
      * I’m no emplyoyee nor afiliated with MS, but I do want to aplogise to you that Ms is trying to make life a bit easier.
      *They could have made it even more easy by uninstalling the older versions when installing the last version applicable, but thet you would have reason to complain as your application no doubt checks on version 15.654754.7487.57568 and that version would be gone.

      1. John G. said on June 27, 2019 at 8:34 am
        Reply

        “*They could have made it even more easy by uninstalling the older versions when installing the last version applicable, but thet you would have reason to complain as your application no doubt checks on version 15.654754.7487.57568 and that version would be gone.”

        I beg your pardon but this is an insane concept itself, because Microsoft is now offering at its site all C++ latest versions only, not minor ones, older ones or whatever they could be named. So it’s not fair for the users that they are releasing updates over updates that can’t be used for specific programs that required such minor version. Where they can be found?

        According to the exposed facts, MS should offer all 20 versions of C++ or not?

  13. PuzzledReader said on June 24, 2019 at 2:08 pm
    Reply

    What’s the news here? Microsoft did this years ago.

  14. Emil said on June 24, 2019 at 2:07 pm
    Reply

    https://tiny.cc/vcredist

    Make it easy for yourself :-)

    I’ve been using these packs for a long time, they are fine. The source is the mydigitallife forum.

  15. Peter Quiring said on June 24, 2019 at 1:32 am
    Reply

    Ignore the years, look at the versions. 2015-2019 are all v14, that’s all. If C++ v15.0 comes out then it will just add to the list of C++ runtimes you will need to install.

    MS has a website the maintains the latest minor version of each major release.

    https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads

    Thanks,

  16. Dilly Dilly said on June 23, 2019 at 4:19 pm
    Reply

    The most comprehensive up to date supported version is here:

    https://github.com/abbodi1406/vcredist

    1. Anonymous said on June 24, 2019 at 1:57 am
      Reply

      I downloaded and installed https://github.com/abbodi1406/vcredist

      It appears to have worked fine, but now I see that from 2012 on, I have a “Minimum Runtime” and an “Additional Runtime” for each version.

      I’ve searched, but haven’t been able to find the difference between the “minimum” and “additional” versions.

      Do I need both in each case?

      Based on the software on my computer, is there a tool that can tell me which C++ versions I actually need?

      Thank you.

    2. Yuliya said on June 23, 2019 at 4:34 pm
      Reply

      This is nice. It even installs the VCredist 2005 properly – Microsoft’s own installer fails to place one file in its folder and I always had to do it manually then re-register the dll via CMD.
      Also, abbodi1406 should be trustworthy, he’s from MDL forums.

  17. asdfly said on June 23, 2019 at 2:52 pm
    Reply

    For a while I’ve been relying on the vcredist-all package from chocolatey.

  18. Ivan Lazarov said on June 23, 2019 at 1:30 pm
    Reply

    I have the following Microsoft Visual C++ redistributables installed:

    2005 v8.0.61001
    2005 v8.0.56336
    2005 v8.0.59193
    2005 v8.0.50727.42
    2005×64 v8.0.50727.42
    2005×64 v8.0.59192

    2008 v9.0.21022
    2008 v9.0.30729.17
    2008 v9.0.30729.4148
    2008 v9.0.30729.6161
    2008×64 v9.0.21022
    2008×64 v9.0.30729.17
    2008×64 v9.0.30729.4148
    2008×64 v9.0.30729.6161

    2010 10.0.40219
    2010×64 10.0.40219

    2012 11.0.61030
    2012×64 11.0.61030

    2013 12.0.21005
    2013×64 12.0.21005
    2013 12.0.30501
    2013×64 12.0.30501
    2013×64 12.0.40649
    2013 12.0.40664
    2013×64 12.0.40664

    Nothing from 2015 ??

    2017 14.14.26429
    2017×64 14.14.26429

    This is chaos. This is madness. This is insanity.
    The update changes nothing about that.

    1. Slaskfader said on June 23, 2019 at 6:04 pm
      Reply

      Remove them all. Get the latest ones, in your case 2005-2008-2010-2012 and the new 2015~2019 that replaces 2017, both x64 and x86 from here: https://github.com/CNMan/MicrosoftHotfixesList/tree/master/Microsoft_Visual_C%2B%2B_Redistributable_Package It’s enough to have just one version per “year”, whatever program that needs it doesn’t care about the version number. The latest ones are the safest ones. I personally would remove everything and then try all installed programs to see if some won’t start anymore. Many times those c++ things are just left behind after a program has been uninstalled..and other times not, my webcam on my old acer laptop doesn’t work without c++ 2005 for example. The latest ClipGrab needs c++ 2017 etc etc.. its a damn hassle for sure.

      1. Ivan Lazarov said on June 24, 2019 at 1:31 pm
        Reply

        Thanks Slaskfader!
        I even had some of the latest versions already installed, so I mostly uninstalled the older ones.

      2. Anonymous said on June 25, 2019 at 8:02 am
        Reply
    2. Martin Brinkmann said on June 23, 2019 at 3:47 pm
      Reply

      2017 includes 2015.

  19. Ivan Lazarov said on June 23, 2019 at 1:22 pm
    Reply

    How can I determine whether I can uninstall some older c++ redistributables? (i.e. older than 2015)

    1. Martin Brinkmann said on June 23, 2019 at 3:49 pm
      Reply

      There is no easy way to do this. I suggest you check out the “try” section of our guide: https://www.ghacks.net/2017/04/10/microsoft-visual-c-redistributable-information/

  20. John G. said on June 23, 2019 at 12:46 pm
    Reply

    Microsoft ends nothing. It they wanted to end C++ madness they would provide all C++ updates through Windows Update instead letting the user to explode their brains searching each update separately for their respective C++ versions. Actually there are some guys that are offering some C++ all-in-one packages that solve in much way this problem FOR FREE, with no MS money reward. Microsoft’s brilliant volunteers are mostly the 50% gold medal of this amazing amount of bloatware and ‘updateware’ named Windows. Probably it’s named this way because every day there are a large number of people desiring throwing his computer across their windows.

    1. Macgyver24x7 said on December 4, 2019 at 4:02 pm
      Reply

      @John G, I wholeheartedly agree with you that Microsoft should just deliver all various redistributable runtimes through Windows Update anyway. This should reduce the number of reboots required to install some software. For example, I had to reboot THREE TIMES to get VMware Workstation to update from 15.x to 15.y all because the installer itself required the latest runtimes (both x86 and x64 variants both of which required restarts themselves individually) even before the software continued its own upgrade! Has anyone confirmed whether or not Microsoft is current or is planning to do this?

    2. kalmly said on June 23, 2019 at 2:44 pm
      Reply

      Yes. I downloaded one of those packages, from Major Geeks I think it was, a while back. No more problems with applications complaining I don’t have the right C++ version.

    3. Ivan Lazarov said on June 23, 2019 at 1:21 pm
      Reply

      Hi John G.

      Can you please name or link some of these C++ all-in-one packages?

      1. Anonymous said on June 24, 2019 at 3:24 pm
        Reply

        Try to visit this site- https://forums.mydigitallife.net/threads/repack-visual-c-redistributable-runtimes-2019-06-13.76588/

        the Visual C++ Redistributable Runtimes installer can be found here: https://rebrand.ly/vcredist

        Hope this helps..
        Cheers mate!.
        PS. Please support martin by giving a small donations guys.

        always take care.

      2. John G. said on June 24, 2019 at 1:16 am
        Reply

        After testing and using five or six all-in-one packages, this is the most efficient for all C++:
        https://www.majorgeeks.com/files/details/multipack_visual_c_installer.html

        It works like a charm, no problem experienced ever. Enjoy yourself! :)

    4. anon said on June 23, 2019 at 1:04 pm
      Reply

      It’s not like you have to scurry the Web or anything.

      https://support.microsoft.com/help/2977003

  21. Jeff said on June 23, 2019 at 12:38 pm
    Reply

    Some weird grammar: “as well as these are supported automatically as well.”

    1. Rush said on June 23, 2019 at 6:56 pm
      Reply

      @Jeff..

      Martin, I believe is in Europe. Also, I believe Martin uses English as a second language.

      He believe Martin does quite well, all things considered.

  22. I-Flex said on June 23, 2019 at 12:09 pm
    Reply

    I wonder what negative thing people will come up with about this one!

  23. iron2000 said on June 23, 2019 at 10:58 am
    Reply

    Hmm, not much for me as 2015 is the newest on my PC.
    Theres 2005, 2008, 2010, 2012 and 2013 packages.
    Nothing saved by this move.

    I wish I can see which programs use these packages.

  24. aguilar said on June 23, 2019 at 10:58 am
    Reply

    in a nutshell: Visual C++ 2015, 2017 and 2019 all share the same redistributable files

    all the previous versions are not involved

Leave a Reply

Check the box to consent to your data being stored in line with the guidelines set out in our privacy policy

We love comments and welcome thoughtful and civilized discussion. Rudeness and personal attacks will not be tolerated. Please stay on-topic.
Please note that your comment may not appear immediately after you post it.