Dynamic linkage & Redistributables

Hi everyone,

As I understand from this forum post, JUCE is nowadays defaulting to dynamic linkage on WIN, for good reasons:

So, does this mean, we always have to bundle the Microsoft Visual C++ redistributables with our plugin installers?

In the above forum post, Fabian says, this should not be necessary for Win 10. But I just build a plugin with VS 2019. I sent it to a customer and he could not run it. It looks, as if on his system the “VCRUNTIME140_1.dll” is missing. That DLL comes with the Microsoft Visual C++ 2019 Redistributables, as far as I understand.

How are you guys doing it? Bundling the redistributables with the installers? Hoping the customer already has installed the DLLs? Or maybe there is a third option (e.g. Visual Studio settings), which I am missing?

Link the runtimes statically, it’s just a default in Projucer for new Juce projects to use the dynamic linking but can still be changed back to use static linking. (At least for Visual Studio 2017 projects, I sure hope Microsoft has not removed that option in Visual Studio 2019…If that’s the case, I will never update to VS 2019.)

1 Like

As @Xenakios suggest, there are pros and cons for each.
The post above and change was mostly related to changes in Windows 10 which got ‘fixed’ (they’ve raised the limit) afterward. And as this is Windows 10 aka ‘I’m not just nagging about updating your machine - I’m pro-actively updating it for you’ :wink: ,
For most users providing static-linked would be nicer experience.

Thanks for your thoughts. Very insightsful.
We decided to switch to static linkage. :slight_smile: