Solution for missing visual-c-runtime

Ask other users about problems encountered with portable apps or help by posting solutions to existing problems.
Post Reply
Message
Author
User avatar
zorro
Posts: 81
Joined: Sat Mar 19, 2016 2:32 pm
Location: Hamburg, Germany

Solution for missing visual-c-runtime

#1 Post by zorro »

Dear community,
---- scroll down to next chapter to skip the story :mrgreen: -----
I fiddle around with portable programs since the good ol' times of Windows 95 and always tried to break dependencies and isolate programs from the system. It's a wonderful concept, if you manage to isolate them all - my system change from Windows 98SE to XP in 2007 was seamless, I installed XP, configured it and copied over the whole programs-folder from 98SE. Everything worked out of the box, the only things I had to install where... the PDF-Printer.
The same smooth change happened from XP to 8.1... of course I keep my programs up-to-date, as well as the system. But with Windows 8/8.1 things changed, the runtimes became more and bloated and I decided to stay slim - so no additional NET, no additional VisualC to the base that came with 8.1.
Then came the big "update 1" (so called Windows "8.2", I don't remember the kb-number) - I was one of those "victims", where it just didn't install - tried everything, even a fresh install.... eventually I gave up and began to enjoy the freedom of a rock solid, final system - never bothered by mother Microsoft with updates that brake things and bloat all 8) I get my monthly Windows Malicious Software Removal Tool and that's all - freedom!
...well, the world keeps turning and some of my favorite programs began to ride the VC+2013/2015 horse (the ones flirting with NET where kicked out right away) :roll: Even if I would want to install the runtimes it's not possible without first applying the "update 1"... Way back I managed to violate XP-drivers to work flawless on 98SE and even got 98SE to run on and use multithreaded processors (by borrowing XP-components), so I had to find a solution for the Visual-runtime-dilemma...
----- end of boring story, now for a solution :mrgreen: -----

Some open-source programs luckily (still) come bundled with the required runtime-dlls - e.g. Firefox and LibreOffice. So go ahead and copy those greasy dlls to a separate folder and test the stubborn application that insists on installed VC-runtimes by placing the according ones (x86 or x64) in the application folder. It works! Even with... I don't dare writing it down... Adobe-applications like Lightroom and Photoshop (both of course made portable..) :shock:
So which application here on TPFC could need this? Scribus for example. Not the stable, but blessed with buggy PDF-font-embedding v1.4.7, but the very good "test" v1.5.4 and therefore the future 1.6.0 stable :D
I'm sure there are a lot more applications here that already need but don't provide this runtimes - and as apparently everyone rides Win 10 there will be even more in the future. For those like me who want to extend the lifetime of their old system or avoid installing runtimes for other reasons (like me...) - here comes a list of the dlls needed to run VC-applications - without warranty, this is a snapshot. The way to go is an actual copy of the LibreOffice-folder in the affected application's flavor (x86 or x64) and then copy over the following files:

• x86 (yes, there are some language-dependent ones, you get the right ones by choosing the right LibreOffice-package):

Code: Select all

|-- api-ms-win-core-console-l1-1-0.dll
|-- api-ms-win-core-datetime-l1-1-0.dll
|-- api-ms-win-core-debug-l1-1-0.dll
|-- api-ms-win-core-errorhandling-l1-1-0.dll
|-- api-ms-win-core-file-l1-1-0.dll
|-- api-ms-win-core-file-l1-2-0.dll
|-- api-ms-win-core-file-l2-1-0.dll
|-- api-ms-win-core-handle-l1-1-0.dll
|-- api-ms-win-core-heap-l1-1-0.dll
|-- api-ms-win-core-interlocked-l1-1-0.dll
|-- api-ms-win-core-libraryloader-l1-1-0.dll
|-- api-ms-win-core-localization-l1-2-0.dll
|-- api-ms-win-core-memory-l1-1-0.dll
|-- api-ms-win-core-namedpipe-l1-1-0.dll
|-- api-ms-win-core-processenvironment-l1-1-0.dll
|-- api-ms-win-core-processthreads-l1-1-0.dll
|-- api-ms-win-core-processthreads-l1-1-1.dll
|-- api-ms-win-core-profile-l1-1-0.dll
|-- api-ms-win-core-rtlsupport-l1-1-0.dll
|-- api-ms-win-core-string-l1-1-0.dll
|-- api-ms-win-core-synch-l1-1-0.dll
|-- api-ms-win-core-synch-l1-2-0.dll
|-- api-ms-win-core-sysinfo-l1-1-0.dll
|-- api-ms-win-core-timezone-l1-1-0.dll
|-- api-ms-win-core-util-l1-1-0.dll
|-- api-ms-win-crt-conio-l1-1-0.dll
|-- api-ms-win-crt-convert-l1-1-0.dll
|-- api-ms-win-crt-environment-l1-1-0.dll
|-- api-ms-win-crt-filesystem-l1-1-0.dll
|-- api-ms-win-crt-heap-l1-1-0.dll
|-- api-ms-win-crt-locale-l1-1-0.dll
|-- api-ms-win-crt-math-l1-1-0.dll
|-- api-ms-win-crt-multibyte-l1-1-0.dll
|-- api-ms-win-crt-private-l1-1-0.dll
|-- api-ms-win-crt-process-l1-1-0.dll
|-- api-ms-win-crt-runtime-l1-1-0.dll
|-- api-ms-win-crt-stdio-l1-1-0.dll
|-- api-ms-win-crt-string-l1-1-0.dll
|-- api-ms-win-crt-time-l1-1-0.dll
|-- api-ms-win-crt-utility-l1-1-0.dll
|-- mfc140.dll
|-- mfc140chs.dll
|-- mfc140cht.dll
|-- mfc140deu.dll
|-- mfc140enu.dll
|-- mfc140esn.dll
|-- mfc140fra.dll
|-- mfc140ita.dll
|-- mfc140jpn.dll
|-- mfc140kor.dll
|-- mfc140rus.dll
|-- mfc140u.dll
|-- mfcm140.dll
|-- mfcm140u.dll
|-- Microsoft.VC90.CRT.manifest
|-- msvcm90.dll
|-- msvcp100.dll
|-- msvcp110.dll
|-- msvcp120.dll
|-- msvcp140.dll
|-- msvcp90.dll
|-- msvcr100.dll
|-- msvcr110.dll
|-- msvcr120.dll
|-- msvcr90.dll
|-- ucrtbase.dll
|-- vcamp140.dll
|-- vccorlib140.dll
|-- vcomp140.dll
|-- vcruntime140.dll
• x64 (here apparently things are different, until now I didn't encounter language-dependencies):

Code: Select all

|-- api-ms-win-core-console-l1-1-0.dll
|-- api-ms-win-core-datetime-l1-1-0.dll
|-- api-ms-win-core-debug-l1-1-0.dll
|-- api-ms-win-core-errorhandling-l1-1-0.dll
|-- api-ms-win-core-file-l1-1-0.dll
|-- api-ms-win-core-file-l1-2-0.dll
|-- api-ms-win-core-file-l2-1-0.dll
|-- api-ms-win-core-handle-l1-1-0.dll
|-- api-ms-win-core-heap-l1-1-0.dll
|-- api-ms-win-core-interlocked-l1-1-0.dll
|-- api-ms-win-core-libraryloader-l1-1-0.dll
|-- api-ms-win-core-localization-l1-2-0.dll
|-- api-ms-win-core-memory-l1-1-0.dll
|-- api-ms-win-core-namedpipe-l1-1-0.dll
|-- api-ms-win-core-processenvironment-l1-1-0.dll
|-- api-ms-win-core-processthreads-l1-1-0.dll
|-- api-ms-win-core-processthreads-l1-1-1.dll
|-- api-ms-win-core-profile-l1-1-0.dll
|-- api-ms-win-core-rtlsupport-l1-1-0.dll
|-- api-ms-win-core-string-l1-1-0.dll
|-- api-ms-win-core-synch-l1-1-0.dll
|-- api-ms-win-core-synch-l1-2-0.dll
|-- api-ms-win-core-sysinfo-l1-1-0.dll
|-- api-ms-win-core-timezone-l1-1-0.dll
|-- api-ms-win-core-util-l1-1-0.dll
|-- api-ms-win-crt-conio-l1-1-0.dll
|-- api-ms-win-crt-convert-l1-1-0.dll
|-- api-ms-win-crt-environment-l1-1-0.dll
|-- api-ms-win-crt-filesystem-l1-1-0.dll
|-- api-ms-win-crt-heap-l1-1-0.dll
|-- api-ms-win-crt-locale-l1-1-0.dll
|-- api-ms-win-crt-math-l1-1-0.dll
|-- api-ms-win-crt-multibyte-l1-1-0.dll
|-- api-ms-win-crt-private-l1-1-0.dll
|-- api-ms-win-crt-process-l1-1-0.dll
|-- api-ms-win-crt-runtime-l1-1-0.dll
|-- api-ms-win-crt-stdio-l1-1-0.dll
|-- api-ms-win-crt-string-l1-1-0.dll
|-- api-ms-win-crt-time-l1-1-0.dll
|-- api-ms-win-crt-utility-l1-1-0.dll
|-- concrt140.dll
|-- msvcp140.dll
|-- ucrtbase.dll
|-- vccorlib140.dll
|-- vcruntime140.dll
I'm not sure if all of these are needed, but in the end there's only some 3 or 18 MB (x64 / x86) on top - even ascetics should comfortably live with it (think of Electron & such!)

Hopefully my tip makes someone happy :)

User avatar
Midas
Posts: 6706
Joined: Mon Dec 07, 2009 7:09 am
Location: Sol3

Re: Solution for missing visual-c-runtime

#2 Post by Midas »

Great info, zorro. Thanks. :)

I have tweaked with system dependencies in the past, mainly by doing what you did -- place them alongside executables and see if they complain -- but a few don't like that, I believe because of hard-coded paths or registry dependency to find needed runtimes.

As it looks like you have a valuable knowledge in this area, a fuller write up about your system setup would be more than welcome, IMHO.

User avatar
Midas
Posts: 6706
Joined: Mon Dec 07, 2009 7:09 am
Location: Sol3

Re: Solution for missing visual-c-runtime

#3 Post by Midas »

MS is making moves to improve user runtimes experience, according to Ghacks.net.

Microsoft ends Visual C++ Redistributable Chaos

Post Reply