Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.

 

Go Back   Doom9's Forum > Programming and Hacking > Development

Reply
 
Thread Tools Search this Thread Display Modes
Old 13th January 2019, 02:52   #1  |  Link
manolito
Registered User
 
manolito's Avatar
 
Join Date: Sep 2003
Location: Berlin, Germany
Posts: 3,078
VC++ Redistributables

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

Last edited by manolito; 23rd January 2019 at 04:32.
manolito is offline   Reply With Quote
Old 13th January 2019, 14:33   #2  |  Link
FranceBB
Broadcast Encoder
 
FranceBB's Avatar
 
Join Date: Nov 2013
Location: Royal Borough of Kensington & Chelsea, UK
Posts: 2,883
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.
FranceBB is offline   Reply With Quote
Old 13th January 2019, 20:15   #3  |  Link
manolito
Registered User
 
manolito's Avatar
 
Join Date: Sep 2003
Location: Berlin, Germany
Posts: 3,078
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
manolito is offline   Reply With Quote
Old 13th January 2019, 20:51   #4  |  Link
StainlessS
HeartlessS Usurer
 
StainlessS's Avatar
 
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
Quote:
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.
__________________
I sometimes post sober.
StainlessS@MediaFire ::: AND/OR ::: StainlessS@SendSpace

"Some infinities are bigger than other infinities", but how many of them are infinitely bigger ???

Last edited by StainlessS; 14th January 2019 at 12:24.
StainlessS is offline   Reply With Quote
Old 15th January 2019, 12:39   #5  |  Link
jpsdr
Registered User
 
Join Date: Oct 2002
Location: France
Posts: 2,308
Framework 4.8...? Where ?
From what i see, the last is 4.7.2 : https://dotnet.microsoft.com/download
__________________
My github.
jpsdr is offline   Reply With Quote
Old 15th January 2019, 13:17   #6  |  Link
nevcairiel
Registered Developer
 
Join Date: Mar 2010
Location: Hamburg/Germany
Posts: 10,342
4.8 is the version that'll come with VS2019, its in development/preview cycle right now.
__________________
LAV Filters - open source ffmpeg based media splitter and decoders
nevcairiel is online now   Reply With Quote
Old 16th January 2019, 21:26   #7  |  Link
LoRd_MuldeR
Software Developer
 
LoRd_MuldeR's Avatar
 
Join Date: Jun 2005
Location: Last House on Slunk Street
Posts: 13,248
Quote:
Originally Posted by manolito View Post
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 (or Dependencies) to figure out which run-time library DLLs are actually missing...
__________________
Go to https://standforukraine.com/ to find legitimate Ukrainian Charities 🇺🇦✊

Last edited by LoRd_MuldeR; 16th January 2019 at 21:58.
LoRd_MuldeR is offline   Reply With Quote
Old 16th January 2019, 22:07   #8  |  Link
Groucho2004
 
Join Date: Mar 2006
Location: Barcelona
Posts: 5,034
Quote:
Originally Posted by LoRd_MuldeR View Post
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.
__________________
Groucho's Avisynth Stuff

Last edited by Groucho2004; 17th January 2019 at 12:54.
Groucho2004 is offline   Reply With Quote
Old 17th January 2019, 01:42   #9  |  Link
manolito
Registered User
 
manolito's Avatar
 
Join Date: Sep 2003
Location: Berlin, Germany
Posts: 3,078
Quote:
Originally Posted by LoRd_MuldeR View Post
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

Last edited by manolito; 17th January 2019 at 01:56.
manolito is offline   Reply With Quote
Old 17th January 2019, 02:31   #10  |  Link
Groucho2004
 
Join Date: Mar 2006
Location: Barcelona
Posts: 5,034
Quote:
Originally Posted by manolito View Post
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...
__________________
Groucho's Avisynth Stuff
Groucho2004 is offline   Reply With Quote
Old 17th January 2019, 12:42   #11  |  Link
StainlessS
HeartlessS Usurer
 
StainlessS's Avatar
 
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
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]
__________________
I sometimes post sober.
StainlessS@MediaFire ::: AND/OR ::: StainlessS@SendSpace

"Some infinities are bigger than other infinities", but how many of them are infinitely bigger ???
StainlessS is offline   Reply With Quote
Old 17th January 2019, 13:52   #12  |  Link
shekh
Registered User
 
Join Date: Mar 2015
Posts: 775
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
__________________
VirtualDub2
shekh is offline   Reply With Quote
Old 17th January 2019, 18:42   #13  |  Link
Zetti
Registered User
 
Join Date: Dec 2015
Posts: 306
I using this AIO from BALTAGY and i don't have any issues:

https://baltagy1.blogspot.com/2018/0...le-repack.html
Zetti is offline   Reply With Quote
Old 17th January 2019, 21:37   #14  |  Link
manolito
Registered User
 
manolito's Avatar
 
Join Date: Sep 2003
Location: Berlin, Germany
Posts: 3,078
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
manolito is offline   Reply With Quote
Old 18th January 2019, 00:21   #15  |  Link
Zetti
Registered User
 
Join Date: Dec 2015
Posts: 306
BALTAGY's AIO contains all the original installers, thats why the AIO is over 100MB
Zetti is offline   Reply With Quote
Old 18th January 2019, 02:24   #16  |  Link
manolito
Registered User
 
manolito's Avatar
 
Join Date: Sep 2003
Location: Berlin, Germany
Posts: 3,078
Quote:
Originally Posted by Zetti View Post
BALTAGY's AIO contains all the original installers
Which is not a good thing IMO...

From the abbodi1406 Readme:
Quote:
Visual C++ Redistributable Runtimes AIO Repack is all the latest Microsoft Visual C++ Redistributable Runtimes, without the original setup bloat payload.

Cheers
manolito
manolito is offline   Reply With Quote
Old 18th January 2019, 02:40   #17  |  Link
Groucho2004
 
Join Date: Mar 2006
Location: Barcelona
Posts: 5,034
Quote:
Originally Posted by manolito View Post
abbodi1406
That'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).
__________________
Groucho's Avisynth Stuff

Last edited by Groucho2004; 18th January 2019 at 02:50.
Groucho2004 is offline   Reply With Quote
Old 20th January 2019, 21:29   #18  |  Link
manolito
Registered User
 
manolito's Avatar
 
Join Date: Sep 2003
Location: Berlin, Germany
Posts: 3,078
Quote:
Originally Posted by manolito View Post
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...

The content is not completely up to date, the latest abbodi1406 package from Jan. 2019 is not yet available.


Cheers
manolito
manolito is offline   Reply With Quote
Old 23rd January 2019, 04:34   #19  |  Link
manolito
Registered User
 
manolito's Avatar
 
Join Date: Sep 2003
Location: Berlin, Germany
Posts: 3,078
Quote:
Originally Posted by manolito View Post
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...
manolito is offline   Reply With Quote
Old 5th November 2019, 12:42   #20  |  Link
StainlessS
HeartlessS Usurer
 
StainlessS's Avatar
 
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
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]

Quote:
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.
__________________
I sometimes post sober.
StainlessS@MediaFire ::: AND/OR ::: StainlessS@SendSpace

"Some infinities are bigger than other infinities", but how many of them are infinitely bigger ???

Last edited by StainlessS; 5th November 2019 at 13:05.
StainlessS is offline   Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 13:37.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.