View Full Version : VC++ Redistributables
manolito
13th January 2019, 02:52
Many users have trouble getting some specific software to work because of missing VC++ Redistributables. A good solution is to blindly install an AIO package containing all current redistributables.
A good source for such AIO packages is (or has been) Repacks.net, but for about a week it seems to be down.
The most recent package by abbodi1406 is from Jan. 2019 and can be found at MajorGeeks. It has only partial support for WinXP, but otherwise it works perfectly.
Another version by -=[4lfre1re]=- is from June 2018. Highly recommended, the setup lets you choose which components you want to install. Right now I cannot find it anywhere for downloading, let me know if you need it.
Ricktendo stopped building AIO packages in 2017, his builds are probably a little bit outdated today.
Cheers
manolito
//EDIT Jan. 23 2019//
Repacks.net is up again and fully updated to the latest editions
FranceBB
13th January 2019, 14:33
Over the years there have been people who statically compile programmes and others that dynamically compile them.
By statically compiling an executable, you bind a specific version of a redistributable to your programme and you distribute it with your programme.
Unfortunately, though, every time an update comes out for the redistributable you used, you would have to re-compile and re-distribute your programme, which is actually annoying.
By dynamically compiling a programme, instead, you let Windows handle it, so the redistributable inside the system are used.
This way, you won't have to re-compile and re-distribute your programme every time as the redistributable will be updated by Microsoft Update / Windows Update.
In an ideal world, everybody would dynamically compile programmes and every user would have all the required versions of the redistributables installed and updated.
Sadly, that's not the case and I've seen systems without installs and other things complaining of programmes not working.
Besides, depending on the compiler used, you may need other version of the C++ Redistributable; for instance, ever since Intel Parallel Studio has been around, users need the Intel C++ Redistributable as well.
In other words, it's a bit of a mess, but I generally suggest people to install:
- Microsoft C++ Redistributable 2005 (x86 - x64)
- Microsoft C++ Redistributable 2008 (x86 - x64)
- Microsoft C++ Redistributable 2010 (x86 - x64)
- Microsoft C++ Redistributable 2012 (x86 - x64)
- Microsoft C++ Redistributable 2013 (x86 - x64)
- Microsoft C++ Redistributable 2015 (x86 - x64)
- Microsoft C++ Redistributable 2017 (x86 - x64)
(Actually, you don't need to install the 2015 one as the 2017 would uninstall it and replace it anyway).
- Intel C++ Redistributable 2019
(Actually, you don't need to install the old 2017 Intel C++ Redistributable 'cause the new one surperseeds the old one and uninstalls it automatically).
- .NET Framework 1.0
- .NET Framework 1.1
- .NET Framework 2.0
- .NET Framework 3.0
- .NET Framework 3.5
- .NET Framework 4.0
- .NET Framework 4.5
- .NET Framework 4.6
- .NET Framework 4.7
- .NET Framework 4.8
(Actually, if you have a recent OS like Windows 10 - or something newer than Windows XP - you can skip the first installs and go straight with the .NET Framework 4.8 'cause the former ones are already integrated in the system and the new 4.8 superseeds all the 4.x ones. As to XP, the latest .NET Framework supported is 4.0 Extended, so you gotta stick with that).
With all these installed, users can be pretty sure that they will be able to run pretty much anything that has been dynamically compiled.
As to me, I'm personally more prone to compile dynamically on my systems and share the executable with others.
Occasionally, people complained about it so if I have a bit of spare time, I re-compile statically and upload the statically compiled version as well.
manolito
13th January 2019, 20:15
I agree with all of the above. An AIO package for these redistributables just makes it so much easier for the end user compared with trying to find, download and install them all in the right order.
BTW I am not so sure if moving this thread from the General section to the Development section was such a good idea. After all having the necessary redistributables installed is a user responsibility. There were numerous posts in the AviSynth section where some clueless users could not get their plugins to work due to missing dependencies.
Cheers
manolito
StainlessS
13th January 2019, 20:51
BTW I am not so sure if moving this thread from the General section to the Development section was such a good idea. After all having the necessary redistributables installed is a user responsibility.
Absolutely, I take it that it was not your idea. Developers require SDK's, users require runtimes.
EDIT: And of course runtimes dont come with debug versions for developers, Development Forum is daft place for this thread.
jpsdr
15th January 2019, 12:39
Framework 4.8...? Where ?
From what i see, the last is 4.7.2 : https://dotnet.microsoft.com/download
nevcairiel
15th January 2019, 13:17
4.8 is the version that'll come with VS2019, its in development/preview cycle right now.
LoRd_MuldeR
16th January 2019, 21:26
After all having the necessary redistributables installed is a user responsibility.
Nope. Or, at least, it shouldn't be :)
If the developer decides to make the application use the "static" version of the run-time library (option /MT), then we get a nice fully self-contained EXE file which does not depend on any run-time library DLLs at all. Couldn't be easier!
And, if the developer decides to make the application use the "DLL-specific" version of the run-time library (option /MD), so that separate run-time library DLLs are needed at run-time, then the following options are available:
Package the application with all the required run-time library DLLs, e.g. as a ZIP file or installer, so that we get a nice fully self-contained "bundle" that does not depend on any separately installed VC++ Redistributable at all. And, yes, this is still possible with VS2017 and the Universal CRT. You just need to bundle the UCRT DLLs from the "Redist\ucrt\DLLs" directory of the Windows SDK in addition to the usual Visual C++ "Redist" DLLs.
Do not bundle the required run-time library DLLs with the application, but instead provide an installer that contains the specific VC++ Redistributable installer required by that application. When choosing this option, the "main" installer may invoke the embedded VC++ Redistributable installer automatically during the installation process, in "silent" mode, so that the user doesn't even need to notice that the required VC++ Redistributable gets installed.
If neither of the previous two options seem appropriate, it should at least be documented very clearly, in the application's README, which specific VC++ Redistributable (including download link) is required for that specific application.
Blindly bloating your machine by installing a zillion of Redistributables, in the hope that one of them will be the "right" one for application XYZ, is not a very good idea. Might do more harm than good. I think I'm having a "Coded Packs" déjà vu ;)
If in doubt, better use Dependency Walker (http://www.dependencywalker.com/) (or Dependencies (https://github.com/lucasg/Dependencies)) to figure out which run-time library DLLs are actually missing...
Groucho2004
16th January 2019, 22:07
Blindly bloating your machine by installing a zillion of Redistributables, in the hope that one of them will be the "right" one for application XYZ, is not a very good idea. Might do more harm than good. I think I'm having a "Coded Packs" Déjà vu ;)
In general I agree with you but in case of the redists I think the all-in-one installers are a blessing, particularly for Avisynth users since plugin coders use a wide variety of VC versions.
I just did a test with the recent AIO installer which installs 2005, 2008, 2010, 2012, 2013 and 2015/17 for both x86 and x64. The installed 392 files occupy about 145 MiB. Compare that to a 10+ GiB Windows directory with 70,000+ files.
I'm a minimalist and I only install the stuff I need but these AIOs come in very handy when dealing with AVS plugs.
manolito
17th January 2019, 01:42
Nope. Or, at least, it shouldn't be :)
If the developer decides to make the application use the "static" version of the run-time library (option /MT), then we get a nice fully self-contained EXE file which does not depend on any run-time library DLLs at all. Couldn't be easier!
This is how it would be in a perfect world, but we all know that this world is far from perfect...
I know that it is your philosophy to make your software truly self-contained, but most other devs do it differently these days. Most recent AviSynth plugins only come as shared builds these days (it used to be different some time ago). And writing proper documentation is not a strong point for most devs, for a lot of plugins users it will not be easy to find out which runtimes are needed. And most users will not be able to run Dependency Walker to find out. Plus the error messages you get when a runtime is missing are misleading at best.
I started using AIO VC++ Redistributables after Groucho recommended Ricktendo's package a few years ago, and so far I never had any issues with them, not even on my ancient WinXP machine.
And the comparison with the dreaded "Codec Packs" misses the point IMO. First of all these packages do not bloat your computer at all (like Groucho pointed out), and secondly all these runtimes come from one manufacturer who designed them to be installed in parallel.
I totally agree with Groucho that these AIO packages are a blessing for the average users, and it happened more than once that after a friend asked for help because a specific AviSynth plugin did not work I recommended to install such a package, and the problem was solved.
BTW I found a post by Ricktendo in the WinCert forum where he confirmed that repacks.net is dead for now because he did not have the money to pay for hosting any longer. He probably should have asked for donations...
Cheers
manolito
Groucho2004
17th January 2019, 02:31
BTW I found a post by Ricktendo in the WinCert forum where he confirmed that repacks.net is dead for now because he did not have the money to pay for hosting any longer. He probably should have asked for donations...
Crap...
StainlessS
17th January 2019, 12:42
Redistributable runtimes, tend to be included in SDK's, so why would developers need to download runtimes ? (when they are obviously using the SDK's that result in the runtime requirements).
['Redistributable runtimes' --- excluding non distributable runtimes eg debug runtimes]
shekh
17th January 2019, 13:52
How to test an installer:
1) do clean install of initial OS version (not expanded with service packs or any updates)
2) run your program and confirm it reports meaningful error
3) run your installer
4) run your program again and confirm it now works properly
Resume: too much trouble :)
Zetti
17th January 2019, 18:42
I using this AIO from BALTAGY and i don't have any issues:
https://baltagy1.blogspot.com/2018/04/microsoft-visual-c-redistributable-repack.html
manolito
17th January 2019, 21:37
Thanks for the link. I downloaded the package and installed it in WinXP. Installation went fine, but after a reboot a Microsoft Error Report was created and I was prompted to send it to Microsoft.
I also noticed that a couple of the redists were installed more than once. So it is probably required to uninstall the redists which are already installed before installing the BALTAGY package.
And what also surprised me is the size of this package. Ricktendo's latest package is a little over 40 MB, abbodi1406's current offer has only 28 MB, and BALTAGY's pack has well over 100 MB.
Cheers
manolito
Zetti
18th January 2019, 00:21
BALTAGY's AIO contains all the original installers, thats why the AIO is over 100MB
manolito
18th January 2019, 02:24
BALTAGY's AIO contains all the original installers
Which is not a good thing IMO... :devil:
From the abbodi1406 Readme:
Visual C++ Redistributable Runtimes AIO Repack is all the latest Microsoft Visual C++ Redistributable Runtimes, without the original setup bloat payload.
Cheers
manolito
Groucho2004
18th January 2019, 02:40
abbodi1406That's the one I'm using now. Nice and slim, up-to-date and configurable via command line. It has a feature to uninstall all previous runtimes (although not on XP/XP64, so a manual uninstall is required).
manolito
20th January 2019, 21:29
BTW I found a post by Ricktendo in the WinCert forum where he confirmed that repacks.net is dead for now because he did not have the money to pay for hosting any longer.
Good news, Repacks.net is online again... :D
The content is not completely up to date, the latest abbodi1406 package from Jan. 2019 is not yet available.
Cheers
manolito
manolito
23rd January 2019, 04:34
The content is not completely up to date, the latest abbodi1406 package from Jan. 2019 is not yet available.
No longer true, repacks.net is up again and fully updated to the latest editions of the VC++ runtimes... :D
StainlessS
5th November 2019, 12:42
repacks.net now re-directs to abbodi1406 stuff on GitHub:- https://github.com/abbodi1406/
Specifically VS redistributables readMe:- https://github.com/abbodi1406/vcredist
Releases:- https://github.com/abbodi1406/vcredist/releases
Updated Oct 2019, (third update since about July) [~28MB]
VisualCppRedist AIO
Overview:
AIO Repack for latest Microsoft Visual C++ Redistributable Runtimes, without the original setup bloat payload.
Built upon VBCRedist_AIO_x86_x64.exe by @ricktendo64
The process is handled by a windows command script, which runs hidden in the background by default.
Before installation, the script will check and remove existing non-compliant Visual C++ Runtimes, including the original EXE or MSI setups, or older MSI packages versions.
The uninstallation option/script will remove any detected VC++ runtimes (except UCRT).
Windows XP support is partial, the pack will install and detect latest runtimes versions, but it will not check and remove non-compliant versions.
You can extract the installer file with 7-zip or WinRar to a short path, and run Installer.cmd as administrator
Contents:
Visual C++ Redistributables (x86/x64)
2005: 8.0.50727.6229
2008: 9.0.30729.7523
2010: 10.0.40219.473
2012: 11.0.61135.400
2013: 12.0.40664.0
2019: Latest
Visual Studio 2010 Tools for Office Runtime (x86/x64)
10.0.60833.0
Legacy Runtimes (x86)
Visual C++ 2002: 7.0.9975.0
Visual C++ 2003: 7.10.6119.0
Visual Basic Runtimes
Universal CRT:
complementary part of VC++ 2019 redist.
inbox component for Windows 10.
delivered as an update for Windows Vista/7/8/8.1, either in Monthly Quality Rollup, KB3118401, or KB2999226.
installed with VC++ 2019 redist for Windows XP.
this repack will install KB3118401 if UCRT is not available.
VC++ 2019 runtimes are binary compatible with VC++ 2015-2017 and cover all VS 2015-2017-2019 programs.
EDIT: I had issues with Win7 install, a couple of alerts jumped up to say something like "another (EDIT: unspecified) version of this is already installed, install cannot continue",
I'm gonna uninstall all runtimes via control panel, then re-install again.
EDIT: After all runtimes un-installed, all runtimes installed without incident.
StainlessS
13th November 2019, 04:02
EDIT: I had issues with Win7 install, a couple of alerts jumped up to say something like "another (EDIT: unspecified) version of this is already installed, install cannot continue",
I'm gonna uninstall all runtimes via control panel, then re-install again.
EDIT: After all runtimes un-installed, all runtimes installed without incident.
The actual error message would have been this
0x80070666 - Another version of this product is already installed. Installation of this version cannot continue.
To configure or remove the existing version of this product, use Add/Remove Programs on the Control Panel.
And reason as described here:- https://docs.microsoft.com/en-us/cpp/porting/binary-compat-2015-2017?view=vs-2019
So I could have just ignored error message without worry.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.